/* ============================================
   TOPICS - お知らせ
   ============================================ */
.dw-topics,
.dw-topics-archive,
.dw-topics-single {
    background: linear-gradient(180deg, #faf8f5 0%, #ffffff 100%);
}

.dw-topics {
    padding: 88px 0 96px;
}

.dw-topics .dw-container,
.dw-topics-archive .dw-container,
.dw-topics-single .dw-container {
    max-width: 980px;
}

.dw-topics__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 32px;
    margin-bottom: 28px;
}

.dw-topics__header .dw-section-label,
.dw-topics__header .dw-section-heading {
    text-align: left;
}

.dw-topics__header .dw-section-label {
    margin-bottom: 8px;
}

.dw-topics__header .dw-section-heading {
    margin-bottom: 0;
}

.dw-topics__header-text {
    margin: 0 0 3px;
    color: var(--dw-text-light);
    font-size: 0.9rem;
}

.dw-topics__list {
    border-top: 1px solid var(--dw-gray-200);
}

.dw-topics__item {
    border-bottom: 1px solid var(--dw-gray-200);
}

.dw-topics__link {
    display: grid;
    grid-template-columns: 92px auto minmax(0, 1fr) 24px;
    align-items: center;
    column-gap: 20px;
    min-height: 82px;
    padding: 18px 20px;
    color: var(--dw-text);
    transition: background-color var(--dw-transition), padding var(--dw-transition);
}

.dw-topics__link:hover {
    background-color: rgba(236, 195, 119, 0.14);
    opacity: 1;
    padding-left: 28px;
}

.dw-topics__date {
    color: var(--dw-gray-500);
    font-family: var(--dw-font-en);
    font-size: 0.95rem;
    letter-spacing: 0.04em;
    white-space: nowrap;
}

.dw-topics__category {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 68px;
    padding: 4px 10px;
    border: 1px solid var(--dw-gold);
    color: var(--dw-gold);
    font-size: 0.72rem;
    letter-spacing: 0.04em;
    line-height: 1.25;
    white-space: nowrap;
}

.dw-topics__title {
    margin: 0;
    color: var(--dw-navy);
    font-family: var(--dw-font-serif);
    font-size: 1.02rem;
    font-weight: 600;
    line-height: 1.65;
}

.dw-topics__arrow {
    color: var(--dw-gold);
    font-size: 1.2rem;
    text-align: right;
    transition: transform var(--dw-transition);
}

.dw-topics__link:hover .dw-topics__arrow {
    transform: translateX(4px);
}

.dw-topics__footer {
    display: flex;
    justify-content: center;
    margin-top: 36px;
}

.dw-topics__all-link,
.dw-topics-single__back {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    min-width: 214px;
    padding: 13px 22px;
    border: 1px solid var(--dw-navy);
    color: var(--dw-navy);
    font-family: var(--dw-font-serif);
    font-size: 0.95rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    transition: background-color var(--dw-transition), color var(--dw-transition), transform var(--dw-transition);
}

.dw-topics__all-link:hover,
.dw-topics-single__back:hover {
    background-color: var(--dw-navy);
    color: var(--dw-white);
    opacity: 1;
    transform: translateY(-2px);
}

.dw-topics-breadcrumb {
    padding: 0 0 26px;
}

.dw-topics-breadcrumb ol {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    color: var(--dw-gray-500);
    font-size: 0.78rem;
    list-style: none;
}

.dw-topics-breadcrumb li:not(:last-child)::after {
    content: '/';
    margin-left: 8px;
    color: var(--dw-gray-300);
}

.dw-topics-breadcrumb a {
    color: var(--dw-gray-600);
}

.dw-topics-breadcrumb a:hover {
    color: var(--dw-gold);
    opacity: 1;
}

.dw-topics-page-header {
    padding: 54px 0 40px;
    border-top: 1px solid var(--dw-gray-200);
}

.dw-topics-page-header .dw-section-label {
    margin-bottom: 8px;
    text-align: left;
}

.dw-topics-page-header__title {
    margin: 0;
    color: var(--dw-navy);
    font-family: var(--dw-font-serif);
    font-size: clamp(2rem, 4vw, 3.2rem);
    font-weight: 600;
    line-height: 1.35;
}

.dw-topics-page-header__lead {
    margin: 14px 0 0;
    color: var(--dw-text-light);
    font-size: 0.95rem;
}

.dw-topics-archive {
    min-height: 60vh;
    padding: 64px 0 104px;
}

.dw-topics__list--archive .dw-topics__link {
    align-items: start;
    padding-top: 22px;
    padding-bottom: 22px;
}

.dw-topics__main {
    min-width: 0;
}

.dw-topics__excerpt {
    margin: 7px 0 0;
    color: var(--dw-text-light);
    font-size: 0.88rem;
    line-height: 1.75;
}

.dw-topics__empty {
    margin: 0;
    padding: 54px 0;
    border-top: 1px solid var(--dw-gray-200);
    border-bottom: 1px solid var(--dw-gray-200);
    color: var(--dw-text-light);
    text-align: center;
}

.dw-topics-archive .navigation.pagination {
    display: flex;
    justify-content: center;
    margin-top: 44px;
}

.dw-topics-archive .nav-links {
    display: flex;
    align-items: center;
    gap: 6px;
}

.dw-topics-archive .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    min-height: 38px;
    padding: 0 10px;
    border: 1px solid var(--dw-gray-200);
    color: var(--dw-navy);
    font-size: 0.85rem;
}

.dw-topics-archive .page-numbers.current,
.dw-topics-archive .page-numbers:hover {
    border-color: var(--dw-navy);
    background: var(--dw-navy);
    color: var(--dw-white);
    opacity: 1;
}

.dw-topics-single {
    min-height: 60vh;
    padding: 64px 0 108px;
}

.dw-topics-single__article {
    background: var(--dw-white);
    border-top: 2px solid var(--dw-gold);
    box-shadow: 0 14px 42px rgba(27, 42, 74, 0.06);
}

.dw-topics-single__header {
    padding: 52px 72px 34px;
    border-bottom: 1px solid var(--dw-gray-200);
}

.dw-topics-single__meta {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 18px;
}

.dw-topics-single__title {
    margin: 0;
    color: var(--dw-navy);
    font-family: var(--dw-font-serif);
    font-size: clamp(1.6rem, 3.2vw, 2.45rem);
    font-weight: 600;
    line-height: 1.55;
}

.dw-topics-single__thumbnail {
    margin: 0;
}

.dw-topics-single__thumbnail img {
    width: 100%;
    height: auto;
}

.dw-topics-single__body {
    max-width: 760px;
    margin: 0 auto;
    padding: 50px 72px 20px;
}

.dw-topics-single__body > :first-child {
    margin-top: 0;
}

.dw-topics-single__body > :last-child {
    margin-bottom: 0;
}

.dw-topics-single__footer {
    display: flex;
    justify-content: center;
    padding: 36px 72px 58px;
}

@media (max-width: 767px) {
    .dw-topics {
        padding: 58px 0 64px;
    }

    .dw-topics__header {
        display: block;
        margin-bottom: 20px;
    }

    .dw-topics__header-text {
        margin-top: 10px;
        font-size: 0.82rem;
    }

    .dw-topics__link,
    .dw-topics__list--archive .dw-topics__link {
        grid-template-columns: 1fr auto;
        gap: 10px 14px;
        min-height: 0;
        padding: 18px 4px;
    }

    .dw-topics__date {
        grid-column: 1;
        grid-row: 1;
        font-size: 0.82rem;
    }

    .dw-topics__category {
        grid-column: 2;
        grid-row: 1;
        justify-self: end;
        min-width: 58px;
        padding: 3px 7px;
        font-size: 0.67rem;
    }

    .dw-topics__title,
    .dw-topics__main {
        grid-column: 1;
        grid-row: 2;
    }

    .dw-topics__title {
        padding-right: 2px;
        font-size: 0.96rem;
        line-height: 1.65;
    }

    .dw-topics__arrow {
        grid-column: 2;
        grid-row: 2;
        align-self: center;
    }

    .dw-topics__excerpt {
        font-size: 0.8rem;
    }

    .dw-topics__footer {
        margin-top: 28px;
    }

    .dw-topics__all-link,
    .dw-topics-single__back {
        min-width: 100%;
    }

    .dw-topics-archive,
    .dw-topics-single {
        padding: 34px 0 68px;
    }

    .dw-topics-breadcrumb {
        padding-bottom: 20px;
    }

    .dw-topics-page-header {
        padding: 38px 0 28px;
    }

    .dw-topics-page-header__lead {
        font-size: 0.86rem;
    }

    .dw-topics-single__header {
        padding: 34px 24px 26px;
    }

    .dw-topics-single__meta {
        margin-bottom: 14px;
    }

    .dw-topics-single__body {
        padding: 34px 24px 4px;
    }

    .dw-topics-single__footer {
        padding: 28px 24px 38px;
    }
}
