main {
    .blog {
        padding: 12px 0 100px;
        &:has(.search-empty) {
            .tabs {
                display: none;
            }
        }
        .hero {
            position: relative;
            min-height: 384px;
            margin-bottom: 50px;
            padding: 110px 50px 50px;
            overflow: hidden;
            border-radius: 20px;
            background: var(--bg-3);
            &::before {
                content: '';
                position: absolute;
                top: 50%;
                left: -949px;
                width: 1706px;
                height: 664px;
                background: url('../images/catalog-pattern.webp') no-repeat center;
                background-size: 100% 100%;
                opacity: 0.3;
                transform: translateY(-50%);
                pointer-events: none;
            }
            .hero-tag {
                top: 48px;
                padding-bottom: 11px;
                span::before {
                    content: '\f03e';
                    color: var(--text-10);
                }
                b {
                    color: var(--text-10);
                }
            }
            .content {
                position: relative;
                z-index: 2;
                width: 700px;
                max-width: 100%;
                h1 {
                    max-width: 600px;
                    font-size: 44px;
                    line-height: 1.1;
                    letter-spacing: -1px;
                    color: var(--text-7);
                }
                p {
                    margin-top: 10px;
                    font-weight: 500;
                    line-height: 20px;
                    strong {
                        display: block;
                        font-weight: 700;
                        color: var(--text-10);
                    }
                }
                .search {
                    display: flex;
                    align-items: center;
                    gap: 8px;
                    width: 574px;
                    max-width: 100%;
                    margin-top: 30px;
                    padding: 4px 4px 4px 16px;
                    border-radius: 12px;
                    background: var(--bg-4);
                    &:focus-within, &.active {
                        box-shadow: inset 0 0 0 1px var(--text-10);
                    }
                    &.active {
                        button {
                            display: none;
                        }
                        .reset {
                            display: flex;
                        }
                    }
                    &::before {
                        content: '\f034';
                        flex: none;
                        font-family: icon;
                        font-size: 18px;
                        line-height: 18px;
                        color: var(--text-10);
                    }
                    input {
                        flex: 1;
                        min-width: 0;
                        height: 40px;
                        border: 0;
                        background: transparent;
                        font-size: 14px;
                        line-height: 20px;
                        color: var(--text-7);
                        &::-webkit-search-cancel-button {
                            display: none;
                        }
                        &::placeholder {
                            color: var(--text-3);
                        }
                    }
                    button, .reset {
                        flex: none;
                        height: 40px;
                        padding: 12px 20px;
                        border-radius: 8px;
                        font-size: 13px;
                        line-height: 16px;
                    }
                    .reset {
                        display: none;
                        gap: 0;
                        width: 40px;
                        padding: 10px;
                        background: var(--bg-8);
                        font-size: 0;
                        &::before {
                            content: '\f021';
                            font-size: 20px;
                            line-height: 20px;
                        }
                    }
                }
            }
            .art {
                position: absolute;
                top: 0;
                right: 50px;
                width: 683px;
                height: 100%;
                video {
                    display: block;
                    width: 100%;
                    height: 100%;
                    object-fit: cover;
                }
                &::after {
                    content: '';
                    position: absolute;
                    inset: 0;
                    background: linear-gradient(to left, var(--bg-3), transparent 7%), linear-gradient(to bottom, var(--bg-3), transparent 14.5%), linear-gradient(to right, var(--bg-3), transparent 10.4%);
                    pointer-events: none;
                }
            }
        }
        .featured {
            position: relative;
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            min-height: 402px;
            margin-bottom: 50px;
            overflow: hidden;
            border: 1px solid var(--bg-8);
            border-radius: 20px;
            background: var(--bg-4);
            > a {
                position: absolute;
                inset: 0;
                z-index: 1;
            }
            .image {
                position: relative;
                min-width: 0;
                img {
                    position: absolute;
                    inset: 3px;
                    width: calc(100% - 6px);
                    height: calc(100% - 6px);
                    border-radius: 16px;
                    object-fit: cover;
                }
            }
            .content {
                display: flex;
                flex-direction: column;
                gap: 16px;
                min-width: 0;
                padding: 49px;
                .categories {
                    display: flex;
                    flex-wrap: wrap;
                    gap: 8px;
                    span {
                        display: flex;
                        align-items: center;
                        padding: 11px 20px;
                        border-radius: 10px;
                        background: var(--bg-7);
                        font-family: SSFBreakthrough;
                        font-feature-settings: normal;
                        font-size: 14px;
                        font-weight: 800;
                        line-height: 18px;
                        color: var(--text-6);
                        &.marker {
                            gap: 15px;
                            padding-top: 10px;
                            padding-bottom: 10px;
                            &::before {
                                content: '\f023';
                                flex: none;
                                font-family: icon;
                                font-size: 20px;
                                font-weight: 400;
                                line-height: 20px;
                            }
                        }
                    }
                }
                .text {
                    display: flex;
                    flex-direction: column;
                    gap: 12px;
                    time {
                        font-size: 14px;
                        line-height: 20px;
                        color: var(--text-3);
                    }
                    h2 {
                        font-family: SSFBreakthrough;
                        font-feature-settings: normal;
                        font-size: 24px;
                        font-weight: 800;
                        line-height: 1.1;
                        color: var(--text-7);
                    }
                    p {
                        line-height: 20px;
                    }
                }
                .bottom {
                    display: flex;
                    align-items: center;
                    justify-content: space-between;
                    gap: 12px;
                    margin-top: auto;
                    > span {
                        font-size: 14px;
                        line-height: 20px;
                        color: var(--text-3);
                    }
                    .arrow {
                        display: flex;
                        flex: none;
                        align-items: center;
                        justify-content: center;
                        width: 60px;
                        height: 50px;
                        border-radius: 12px;
                        background: var(--bg-3);
                        &::before {
                            content: '\f009';
                            font-family: icon;
                            font-size: 20px;
                            line-height: 20px;
                            color: var(--text-1);
                        }
                    }
                }
            }
        }
        .results {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 10px;
            margin-bottom: 24px;
            p {
                min-width: 0;
                font-weight: 700;
                line-height: 20px;
                color: var(--text-7);
                overflow-wrap: anywhere;
                &.count {
                    font-size: 18px;
                    font-weight: 400;
                    color: var(--text-1);
                    b {
                        font-weight: 700;
                        color: var(--text-7);
                    }
                }
                b {
                    font: inherit;
                    color: var(--text-10);
                }
            }
            > span {
                font-size: 14px;
                line-height: 20px;
            }
        }
        .tabs {
            display: flex;
            gap: 4px;
            width: max-content;
            max-width: 100%;
            margin-bottom: 24px;
            padding: 4px;
            overflow-x: auto;
            border-radius: 16px;
            background: var(--bg-3);
            a {
                flex: none;
                padding: 11px 20px;
                border-radius: 12px;
                font-size: 14px;
                font-weight: 700;
                line-height: 20px;
                white-space: nowrap;
                &:hover, &.active {
                    background: var(--bg-4);
                    color: var(--bg-13);
                }
            }
        }
        .cards {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 12px;
        }
        .pagination {
            a, span {
                border-color: transparent;
                background: var(--bg-3);
                color: var(--text-1);
                &.active {
                    background: var(--bg-14);
                    color: var(--text-6);
                }
            }
            a:not(.active):hover {
                background: var(--bg-8);
                color: var(--text-7);
            }
            .prev, .next {
                &::before {
                    content: '\f00f';
                    font-size: 16px;
                }
            }
            .prev::before {
                transform: rotate(90deg);
            }
            .next::before {
                transform: rotate(-90deg);
            }
            .gap {
                background: transparent;
            }
        }
        .empty {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 24px;
            padding: 50px 24px;
            border: var(--border-6);
            border-radius: 20px;
            background: var(--bg-4);
            line-height: 20px;
            text-align: center;
            .content {
                display: flex;
                flex-direction: column;
                align-items: center;
                width: 720px;
                max-width: 100%;
                .image {
                    position: relative;
                    width: 335px;
                    max-width: 100%;
                    aspect-ratio: 335 / 250;
                    overflow: hidden;
                    img {
                        position: absolute;
                        top: -10.36%;
                        left: -10.36%;
                        width: 120.72%;
                        height: 120.77%;
                        max-width: none;
                    }
                }
                h2 {
                    font-family: SSFBreakthrough;
                    font-feature-settings: normal;
                    font-size: 24px;
                    font-weight: 800;
                    line-height: 1.1;
                    color: var(--text-7);
                    overflow-wrap: anywhere;
                    b {
                        font: inherit;
                        color: var(--text-10);
                    }
                }
                p {
                    margin-top: 6px;
                    line-height: 20px;
                }
            }
            .actions {
                display: flex;
                flex-wrap: wrap;
                justify-content: center;
                gap: 8px;
                a {
                    min-height: 50px;
                    line-height: 20px;
                }
                .reset {
                    font-size: 14px;
                }
                .catalog::after {
                    content: '\f009';
                    flex: none;
                }
            }
        }
    }
    .article {
        padding: 12px 0 100px;
        .intro {
            margin-bottom: 12px;
            padding: 32px;
            border-radius: 20px;
            background: var(--bg-3);
            .meta {
                display: flex;
                align-items: center;
                flex-wrap: wrap;
                gap: 12px 20px;
                margin-bottom: 20px;
                .categories {
                    display: flex;
                    flex-wrap: wrap;
                    gap: 8px;
                    span {
                        display: flex;
                        align-items: center;
                        padding: 7px 16px;
                        border-radius: 8px;
                        background: var(--bg-7);
                        font-family: SSFBreakthrough;
                        font-feature-settings: normal;
                        font-size: 14px;
                        font-weight: 800;
                        line-height: 18px;
                        color: var(--text-6);
                        &.marker {
                            gap: 8px;
                            &::before {
                                content: '\f023';
                                flex: none;
                                font-family: icon;
                                font-size: 16px;
                                font-weight: 400;
                                line-height: 16px;
                            }
                        }
                    }
                }
                time {
                    font-size: 14px;
                    line-height: 20px;
                    color: var(--text-3);
                }
            }
            h1 {
                max-width: 1000px;
                font-size: 32px;
                line-height: 1.1;
                color: var(--text-7);
                overflow-wrap: anywhere;
            }
            p {
                max-width: 1000px;
                margin-top: 10px;
                font-size: 18px;
                font-weight: 500;
                line-height: normal;
            }
        }
        .body {
            display: grid;
            grid-template-columns: 351px minmax(0, 1fr);
            gap: 50px 12px;
            .sidebar {
                display: none;
                min-width: 0;
                position: sticky;
                top: calc(var(--article-header-height, 0px) + 16px);
                align-self: start;
                max-height: calc(100dvh - var(--article-header-height, 0px) - 32px);
                overflow: auto;
                &.ready {
                    display: block;
                }
                .contents {
                    padding: 32px;
                    border: 1px solid var(--bg-8);
                    border-radius: 20px;
                    background: var(--bg-4);
                    h2 {
                        margin-bottom: 24px;
                        font-family: SSFBreakthrough;
                        font-feature-settings: normal;
                        font-size: 18px;
                        font-weight: 700;
                        line-height: 20px;
                        color: var(--text-7);
                    }
                    nav {
                        display: flex;
                        flex-direction: column;
                        gap: 4px;
                        padding-left: 16px;
                        border-left: 3px solid var(--bg-3);
                        a {
                            position: relative;
                            display: block;
                            padding: 10px 0;
                            font-size: 14px;
                            line-height: 20px;
                            color: var(--text-7);
                            overflow-wrap: anywhere;
                            &:hover {
                                color: var(--text-8);
                            }
                            &.active {
                                font-weight: 600;
                                color: var(--text-8);
                                &::before {
                                    content: '';
                                    position: absolute;
                                    top: 0;
                                    bottom: 0;
                                    left: -19px;
                                    width: 3px;
                                    border-radius: 1px;
                                    background: var(--bg-14);
                                }
                            }
                        }
                    }
                    .reading-time {
                        margin-top: 24px;
                        font-size: 12px;
                        line-height: 14px;
                        color: var(--text-3);
                    }
                }
            }
            .content {
                grid-column: 2;
                min-width: 0;
                border-radius: 20px;
                background: var(--bg-3);
                .cover {
                    aspect-ratio: 1077 / 601;
                    overflow: hidden;
                    border-radius: 20px;
                    img {
                        display: block;
                        width: 100%;
                        height: 100%;
                        object-fit: cover;
                    }
                }
                .text {
                    padding: 32px;
                    overflow-wrap: anywhere;
                    > * + * {
                        margin-top: 16px;
                    }
                    h2 {
                        margin-top: 64px;
                        font-family: SSFBreakthrough;
                        font-feature-settings: normal;
                        font-size: 24px;
                        font-weight: 800;
                        line-height: 1.1;
                        color: var(--text-7);
                        scroll-margin-top: calc(var(--article-header-height, 0px) + 16px);
                        &:first-child {
                            margin-top: 0;
                        }
                    }
                    h3 {
                        font-family: SSFBreakthrough;
                        font-feature-settings: normal;
                        font-size: 18px;
                        font-weight: 700;
                        line-height: 20px;
                        color: var(--text-7);
                    }
                    p, li {
                        font-size: 16px;
                        line-height: 20px;
                    }
                    span, a, strong, b, em, i {
                        font-family: inherit;
                        font-feature-settings: inherit;
                        font-size: inherit;
                        line-height: inherit;
                        color: inherit;
                    }
                    strong, b {
                        font-weight: 700;
                    }
                    a {
                        color: var(--text-8);
                        text-decoration: underline;
                    }
                    ul, ol {
                        padding-left: 22px;
                        li + li {
                            margin-top: 12px;
                        }
                    }
                    ul li::marker {
                        color: var(--text-2);
                    }
                    img {
                        max-width: 100%;
                        height: auto;
                        border-radius: 20px;
                    }
                    blockquote {
                        position: relative;
                        margin: 64px 0;
                        padding: 32px 32px 32px 52px;
                        border: 2px dashed var(--bg-14);
                        border-radius: 16px;
                        background: var(--bg-4);
                        box-shadow: 0 4px 16px rgba(0, 0, 0, 0.03);
                        font-size: 20px;
                        font-weight: 500;
                        line-height: 31px;
                        color: var(--text-8);
                        &:first-child {
                            margin-top: 0;
                        }
                        &:last-child {
                            margin-bottom: 0;
                        }
                        &::before {
                            content: '';
                            position: absolute;
                            top: 32px;
                            bottom: 32px;
                            left: 32px;
                            width: 4px;
                            border-radius: 1px;
                            background: var(--bg-14);
                        }
                        > strong:first-child {
                            display: block;
                            width: fit-content;
                            max-width: 100%;
                            margin-bottom: 6px;
                            padding: 6px 12px;
                            border-radius: 4px;
                            background: var(--bg-17);
                            font-size: 12px;
                            font-weight: 400;
                            line-height: 12px;
                            text-transform: uppercase;
                            & + br {
                                display: none;
                            }
                        }
                    }
                    .table {
                        overflow-x: auto;
                        table {
                            width: 100%;
                            table-layout: fixed;
                            border-collapse: separate;
                            border-spacing: 0;
                            tr {
                                &:nth-child(odd) {
                                    > td, > th {
                                        background: var(--bg-24);
                                    }
                                }
                                td, th {
                                    padding: 20px;
                                    border-right: var(--border-6);
                                    background: var(--bg-3);
                                    vertical-align: middle;
                                    text-align: left;
                                    font-size: 16px;
                                    line-height: 20px;
                                    &:first-child {
                                        border-left: var(--border-6);
                                        font-size: 14px;
                                        font-weight: 700;
                                        color: var(--text-7);
                                    }
                                }
                                th {
                                    font-size: 14px;
                                    font-weight: 700;
                                    color: var(--text-7);
                                }
                                &:first-child {
                                    > td, > th {
                                        background: var(--bg-4);
                                        border-top: var(--border-6);
                                        border-top-left-radius: 16px;
                                        border-top-right-radius: 16px;
                                        font-size: 14px;
                                        font-weight: 700;
                                        color: var(--text-7);
                                    }
                                }
                                &:last-child {
                                    > td, > th {
                                        border-bottom: var(--border-6);
                                        border-bottom-left-radius: 16px;
                                        border-bottom-right-radius: 16px;
                                    }
                                }
                            }
                        }
                    }
                }
                .actions {
                    display: flex;
                    align-items: center;
                    flex-wrap: wrap;
                    gap: 8px;
                    padding: 0 32px 32px;
                    > a, > button {
                        min-height: 40px;
                        padding: 10px 16px;
                        gap: 8px;
                        font-size: 14px;
                        line-height: 20px;
                        color: var(--text-1);
                        &::before, &::after {
                            flex: none;
                            line-height: 20px;
                            color: var(--text-3);
                        }
                    }
                    .back {
                        margin-right: auto;
                        padding: 9px 15px;
                        border: 1px solid var(--bg-8);
                        &::before {
                            content: '\f009';
                            transform: rotate(180deg);
                        }
                    }
                    .copy, .share {
                        background: var(--bg-4);
                    }
                    .copy::after {
                        content: '\f00d';
                    }
                    .share {
                        display: none;
                        &::after {
                            content: '\f03f';
                        }
                    }
                }
            }
            .products {
                grid-column: 2;
                min-width: 0;
                .head {
                    display: flex;
                    align-items: center;
                    justify-content: space-between;
                    flex-wrap: wrap;
                    gap: 16px;
                    margin-bottom: 24px;
                    h2 {
                        flex: 1 1 320px;
                        min-width: 0;
                        font-family: SSFBreakthrough;
                        font-feature-settings: normal;
                        font-size: 32px;
                        font-weight: 800;
                        line-height: 1.1;
                        color: var(--text-7);
                    }
                    a {
                        flex: none;
                        font-size: 14px;
                        line-height: 20px;
                        &::after {
                            content: '\f009';
                        }
                    }
                }
            }
        }
        .related {
            margin-top: 100px;
            h2 {
                margin-bottom: 24px;
                font-family: SSFBreakthrough;
                font-feature-settings: normal;
                font-size: 32px;
                font-weight: 800;
                line-height: 1.1;
                color: var(--text-7);
            }
            .slider {
                --slide-width: min(472px, calc((100% - 24px) / 3));
            }
        }
    }
}
@media (max-width: 1279px) {
    main {
        .blog {
            width: calc(100% - 48px);
            padding-bottom: 80px;
            .hero {
                padding: 110px 32px 32px;
                .hero-tag {
                    padding-left: 32px;
                }
                .content {
                    width: 58%;
                    h1 {
                        font-size: 36px;
                    }
                }
                .art {
                    right: 0;
                    width: 50%;
                }
            }
            .featured {
                .content {
                    padding: 32px;
                    .categories {
                        span {
                            padding: 10px 12px;
                            font-size: 12px;
                            &.marker {
                                gap: 8px;
                            }
                        }
                    }
                    .text {
                        h2 {
                            font-size: 22px;
                        }
                        p {
                            font-size: 14px;
                        }
                    }
                }
            }
            .cards {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
        }
        .article {
            width: calc(100% - 48px);
            padding-bottom: 80px;
            .body {
                grid-template-columns: 240px minmax(0, 1fr);
                .sidebar {
                    .contents {
                        padding: 24px;
                    }
                }
                .products {
                    .head {
                        h2 {
                            font-size: 28px;
                        }
                    }
                }
            }
            .related {
                margin-top: 80px;
                h2 {
                    font-size: 28px;
                }
                .slider {
                    --slide-width: min(472px, calc((100% - 12px) / 2));
                }
            }
        }
    }
}
@media (max-width: 767px) {
    main {
        .blog {
            width: calc(100% - 32px);
            padding-bottom: 60px;
            .hero {
                min-height: 0;
                padding: 100px 20px 20px;
                .hero-tag {
                    top: 32px;
                    padding-left: 20px;
                    padding-right: 12px;
                    font-size: 12px;
                    line-height: 16px;
                    span::before {
                        margin-right: 8px;
                        font-size: 18px;
                    }
                }
                .content {
                    width: 100%;
                    h1 {
                        font-size: 30px;
                        letter-spacing: -0.5px;
                    }
                    p {
                        font-size: 14px;
                        strong {
                            font-size: inherit;
                        }
                    }
                    .search {
                        margin-top: 24px;
                    }
                }
                .art {
                    position: relative;
                    top: auto;
                    right: auto;
                    width: 100%;
                    height: auto;
                    margin-top: 24px;
                    aspect-ratio: 683 / 384;
                }
            }
            .featured {
                grid-template-columns: 1fr;
                min-height: 0;
                .image {
                    aspect-ratio: 714 / 402;
                }
                .content {
                    padding: 24px;
                }
            }
            .cards {
                grid-template-columns: 1fr;
            }
            .empty {
                padding: 32px 16px;
                .content {
                    h2 {
                        font-size: 22px;
                    }
                    p {
                        font-size: 14px;
                    }
                }
                .actions {
                    width: 100%;
                    a {
                        width: 100%;
                        font-size: 14px;
                    }
                }
            }
        }
        .article {
            width: calc(100% - 32px);
            padding-bottom: 60px;
            .intro {
                padding: 24px 20px;
                .meta {
                    gap: 12px;
                }
                h1 {
                    font-size: 26px;
                }
                p {
                    font-size: 16px;
                }
            }
            .body {
                grid-template-columns: minmax(0, 1fr);
                row-gap: 32px;
                .sidebar {
                    position: static;
                    max-height: none;
                    overflow: visible;
                    .contents {
                        padding: 24px 20px;
                    }
                }
                .content {
                    grid-column: 1;
                    .text {
                        padding: 24px 20px;
                        blockquote {
                            padding: 20px 20px 20px 40px;
                            font-size: 16px;
                            line-height: 25px;
                            &::before {
                                top: 20px;
                                bottom: 20px;
                                left: 20px;
                            }
                        }
                    }
                    .actions {
                        flex-direction: column;
                        align-items: stretch;
                        padding: 0 20px 24px;
                        .back {
                            margin-right: 0;
                        }
                        .copy {
                            display: none;
                        }
                        .share {
                            display: flex;
                        }
                    }
                }
                .products {
                    grid-column: 1;
                    .head {
                        h2 {
                            font-size: 26px;
                        }
                    }
                }
            }
            .related {
                margin-top: 60px;
                h2 {
                    font-size: 26px;
                }
                .slider {
                    --slide-width: 100%;
                }
            }
        }
    }
}