/**
 * 団体・チーム詳細ページ用ウィジェット共通スタイル。
 *
 * - あすふる既存 UI（.asufuru-unified-card / .asufuru-fp-stripe / セクション見出し）の
 *   トークン（--md-sys-color-* / --md-sys-spacing-* / --md-sys-shape-corner-* / 角丸／影）
 *   をそのまま使い、サイドバー／モバイル下段の見え方を統一する。
 * - 親テーマ TCD の `.p-widget` / `.p-widget-headline` をベースにし、装飾を上書き。
 * - アイコンは原則として絵文字を使わない。色とタイポで意味を伝える。
 *
 * 構造（W1〜W7）:
 *   <div class="p-widget asufuru-widget asufuru-widget--{name}">
 *     <div class="p-widget-headline">タイトル</div>
 *     <div class="asufuru-rw" data-asufuru-widget="W1">…content…</div>
 *   </div>
 */

/* --------------------------------------------------------------------------
   ベースカード（あすふる統一カードと同じ surface 表現）
   -------------------------------------------------------------------------- */
.p-widget.asufuru-widget {
    background: var(--md-sys-color-surface-container-lowest);
    border: 1px solid var(--md-sys-color-outline-variant);
    border-radius: var(--md-sys-shape-corner-medium);
    box-shadow: var(--md-sys-elevation-2);
    overflow: hidden;
    width: 100%;
    margin: 0 0 var(--md-sys-spacing-6);
}

.p-widget.asufuru-widget + .p-widget.asufuru-widget {
    margin-top: 0;
}

/* 親 TCD が headline に付ける緑のトップラインをあすふるトークンに揃える */
.p-widget.asufuru-widget .p-widget-headline {
    margin: 0;
    padding: var(--md-sys-spacing-4) var(--md-sys-spacing-5);
    background: var(--md-sys-color-surface-container-low);
    border-top: 4px solid var(--md-sys-color-primary);
    border-bottom: 1px solid var(--md-sys-color-outline-variant);
    font-family: 'Noto Sans JP', sans-serif;
    font-size: var(--md-sys-typescale-title-medium-size);
    font-weight: 800;
    line-height: 1.4;
    color: var(--md-sys-color-on-surface);
    letter-spacing: 0.01em;
    width: 100%;
    box-sizing: border-box;
}

.p-widget.asufuru-widget .asufuru-rw {
    display: flex;
    flex-direction: column;
    gap: var(--md-sys-spacing-4);
    padding: var(--md-sys-spacing-5);
    background: var(--md-sys-color-surface-container-lowest);
    color: var(--md-sys-color-on-surface);
    font-family: 'Noto Sans JP', sans-serif;
    font-size: var(--md-sys-typescale-body-medium-size);
    line-height: 1.7;
}

@media (max-width: 991px) {
    .p-widget.asufuru-widget .asufuru-rw {
        padding: var(--md-sys-spacing-4);
    }
}

/* --------------------------------------------------------------------------
   共通ボタン（既存 .asufuru-unified-card__cta と同じ語彙）
   -------------------------------------------------------------------------- */
.asufuru-rw-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: var(--md-sys-spacing-3) var(--md-sys-spacing-4);
    border: 1px solid transparent;
    border-radius: var(--md-sys-shape-corner-small);
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 800;
    font-size: var(--md-sys-typescale-body-medium-size);
    line-height: 1.4;
    text-align: center;
    text-decoration: none !important;
    cursor: pointer;
    transition:
        background-color var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-standard),
        border-color var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-standard),
        color var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-standard),
        transform var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-standard),
        box-shadow var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-standard);
}

.asufuru-rw-btn:hover {
    transform: translateY(-1px);
    text-decoration: none !important;
}

/* CTA: 体験申込（あすふるの行動喚起：オレンジ tertiary・ピル） */
.asufuru-rw-btn--cta {
    background: var(--md-sys-color-tertiary) !important;
    border-color: var(--md-sys-color-tertiary);
    color: var(--md-sys-color-on-tertiary) !important;
    border-radius: var(--asufuru-button-pill-radius);
    padding: var(--md-sys-spacing-4) var(--md-sys-spacing-6);
    box-shadow: var(--asufuru-elevation-tertiary);
}

.asufuru-rw-btn--cta:hover {
    background: var(--md-sys-color-tertiary-hover) !important;
    border-color: var(--md-sys-color-tertiary-hover);
    color: var(--md-sys-color-on-tertiary) !important;
    box-shadow: var(--md-sys-elevation-3);
}

/* Secondary: 信頼の青（unified-card__cta と同形） */
.asufuru-rw-btn--secondary {
    background: var(--md-sys-color-secondary) !important;
    border-color: var(--md-sys-color-secondary);
    color: var(--md-sys-color-on-secondary) !important;
    box-shadow: 0 4px 12px rgba(var(--asufuru-blue-rgb), 0.22);
}

.asufuru-rw-btn--secondary:hover {
    background: var(--md-sys-color-secondary-hover) !important;
    border-color: var(--md-sys-color-secondary-hover);
    color: var(--md-sys-color-on-secondary) !important;
}

/* Ghost: アウトライン。マップ／公式サイトなど補助的な遷移 */
.asufuru-rw-btn--ghost {
    background: var(--md-sys-color-surface-container-lowest) !important;
    border-color: var(--md-sys-color-outline);
    color: var(--md-sys-color-on-surface) !important;
}

.asufuru-rw-btn--ghost:hover {
    background: var(--md-sys-color-surface-container) !important;
    border-color: var(--md-sys-color-primary);
    color: var(--md-sys-color-primary) !important;
}

.asufuru-rw-btn__label {
    display: inline-block;
}

/* --------------------------------------------------------------------------
   テキストリンク・空状態・微小コンポーネント
   -------------------------------------------------------------------------- */
.asufuru-rw-textlink {
    align-self: flex-start;
    color: var(--md-sys-color-secondary) !important;
    font-weight: 700;
    font-size: var(--md-sys-typescale-body-small-size);
    line-height: 1.6;
    text-decoration: none;
    padding: var(--md-sys-spacing-1) 0;
}

.asufuru-rw-textlink:hover {
    color: var(--md-sys-color-secondary-hover) !important;
    text-decoration: underline;
}

.asufuru-rw-empty {
    margin: 0;
    padding: var(--md-sys-spacing-4);
    background: var(--md-sys-color-surface-container);
    border-radius: var(--md-sys-shape-corner-small);
    color: var(--md-sys-color-on-surface-variant);
    font-size: var(--md-sys-typescale-body-small-size);
    line-height: 1.75;
}

/* --------------------------------------------------------------------------
   W1: 要点サマリーカード
   -------------------------------------------------------------------------- */
.asufuru-rw-summary {
    display: flex;
    flex-direction: column;
    gap: var(--md-sys-spacing-4);
}

.asufuru-rw-summary__rating {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--md-sys-spacing-2) var(--md-sys-spacing-3);
    padding-bottom: var(--md-sys-spacing-3);
    border-bottom: 1px solid var(--md-sys-color-outline-variant);
}

.asufuru-rw-summary__stars {
    display: inline-flex;
    align-items: center;
    color: var(--md-sys-color-primary);
    line-height: 1;
}

.asufuru-rw-summary__stars.is-no-rating .p-star-review__icon,
.asufuru-rw-summary__stars.is-no-rating .p-star-review__icon.is-active::before {
    color: var(--md-sys-color-outline) !important;
}

.asufuru-rw-summary__rating-num {
    font-family: 'Plus Jakarta Sans', 'Noto Sans JP', sans-serif;
    font-weight: 800;
    font-size: var(--md-sys-typescale-title-medium-size);
    color: var(--md-sys-color-on-surface);
    line-height: 1;
}

.asufuru-rw-summary__reviews {
    margin-left: auto;
    font-size: var(--md-sys-typescale-body-small-size);
    font-weight: 700;
    color: var(--md-sys-color-secondary) !important;
    text-decoration: none;
}

.asufuru-rw-summary__reviews:hover {
    color: var(--md-sys-color-secondary-hover) !important;
    text-decoration: underline;
}

.asufuru-rw-summary__facets {
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0;
}

.asufuru-rw-summary__facet {
    display: grid;
    grid-template-columns: 7em 1fr;
    align-items: baseline;
    gap: var(--md-sys-spacing-3);
    padding: var(--md-sys-spacing-3) 0;
    border-bottom: 1px solid var(--md-sys-color-outline-variant);
}

.asufuru-rw-summary__facet:first-of-type {
    padding-top: 0;
}

.asufuru-rw-summary__facet:last-of-type {
    padding-bottom: 0;
    border-bottom: 0;
}

.asufuru-rw-summary__facet dt {
    margin: 0;
    color: var(--md-sys-color-on-surface-variant);
    font-size: var(--md-sys-typescale-label-medium-size);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.02em;
}

.asufuru-rw-summary__facet dd {
    margin: 0;
    color: var(--md-sys-color-on-surface);
    font-size: var(--md-sys-typescale-body-medium-size);
    font-weight: 700;
    line-height: 1.6;
    word-break: break-word;
}

.asufuru-rw-summary__anchors {
    margin-top: var(--md-sys-spacing-2);
    padding-top: var(--md-sys-spacing-3);
    border-top: 1px solid var(--md-sys-color-outline-variant);
}

.asufuru-rw-summary__anchors-label {
    margin: 0 0 var(--md-sys-spacing-2);
    font-size: var(--md-sys-typescale-label-medium-size);
    font-weight: 700;
    color: var(--md-sys-color-on-surface-variant);
    letter-spacing: 0.02em;
}

.asufuru-rw-summary__anchors-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--md-sys-spacing-2);
}

.asufuru-rw-summary__anchors-list li {
    margin: 0;
    padding: 0;
}

.asufuru-rw-summary__anchors-list a {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--md-sys-spacing-2) var(--md-sys-spacing-3);
    background: var(--md-sys-color-surface-container);
    border: 1px solid var(--md-sys-color-outline-variant);
    border-radius: var(--md-sys-shape-corner-small);
    color: var(--md-sys-color-on-surface) !important;
    text-decoration: none;
    font-size: var(--md-sys-typescale-label-medium-size);
    font-weight: 700;
    line-height: 1.4;
    text-align: center;
    transition:
        background-color var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-standard),
        border-color var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-standard),
        color var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-standard);
}

.asufuru-rw-summary__anchors-list a:hover {
    background: var(--md-sys-color-primary-container);
    border-color: var(--md-sys-color-primary-container);
    color: var(--md-sys-color-on-primary-container) !important;
}

@media (max-width: 767px) {
    .asufuru-rw-summary__anchors-list {
        grid-template-columns: 1fr;
    }
    .asufuru-rw-summary__facet {
        grid-template-columns: 6em 1fr;
    }
}

/* --------------------------------------------------------------------------
   W2: 募集中バッジ＋次の一手
   -------------------------------------------------------------------------- */
.asufuru-rw-actions {
    display: flex;
    flex-direction: column;
    gap: var(--md-sys-spacing-3);
}

.asufuru-rw-recruit {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--md-sys-spacing-1) var(--md-sys-spacing-2);
    padding: var(--md-sys-spacing-3) var(--md-sys-spacing-4);
    background: var(--md-sys-color-primary-container);
    border-radius: var(--md-sys-shape-corner-small);
    color: var(--md-sys-color-on-primary-container);
}

.asufuru-rw-recruit__pulse {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: var(--md-sys-shape-corner-full);
    background: var(--md-sys-color-primary);
    box-shadow: 0 0 0 0 rgba(var(--asufuru-green-rgb), 0.45);
    animation: asufuruRwPulse 1.8s ease-out infinite;
    flex: 0 0 auto;
}

@keyframes asufuruRwPulse {
    0%   { box-shadow: 0 0 0 0 rgba(var(--asufuru-green-rgb), 0.45); }
    70%  { box-shadow: 0 0 0 12px rgba(var(--asufuru-green-rgb), 0); }
    100% { box-shadow: 0 0 0 0 rgba(var(--asufuru-green-rgb), 0); }
}

@media (prefers-reduced-motion: reduce) {
    .asufuru-rw-recruit__pulse { animation: none; }
}

.asufuru-rw-recruit__label {
    font-weight: 800;
    font-size: var(--md-sys-typescale-title-small-size);
    color: var(--md-sys-color-on-primary-container);
}

.asufuru-rw-recruit__sub {
    flex-basis: 100%;
    margin: 0;
    padding-left: calc(10px + var(--md-sys-spacing-2));
    font-size: var(--md-sys-typescale-body-small-size);
    color: var(--md-sys-color-on-primary-container);
    opacity: 0.85;
    line-height: 1.6;
}

.asufuru-rw-quietnote {
    margin: 0;
    padding: var(--md-sys-spacing-3) var(--md-sys-spacing-4);
    background: var(--md-sys-color-surface-container);
    border-radius: var(--md-sys-shape-corner-small);
    color: var(--md-sys-color-on-surface-variant);
    font-size: var(--md-sys-typescale-body-small-size);
    line-height: 1.7;
}

.asufuru-rw-actions__buttons {
    display: flex;
    flex-direction: column;
    gap: var(--md-sys-spacing-2);
}

.asufuru-rw-actions__note {
    margin: 0;
    color: var(--md-sys-color-on-surface-variant);
    font-size: var(--md-sys-typescale-label-medium-size);
    text-align: center;
    line-height: 1.6;
}

/* --------------------------------------------------------------------------
   W3: 検索・回遊チップ
   -------------------------------------------------------------------------- */
.asufuru-rw-explore {
    display: flex;
    flex-direction: column;
    gap: var(--md-sys-spacing-4);
}

.asufuru-rw-explore__group {
    display: flex;
    flex-direction: column;
    gap: var(--md-sys-spacing-2);
}

.asufuru-rw-explore__label {
    margin: 0;
    color: var(--md-sys-color-on-surface-variant);
    font-size: var(--md-sys-typescale-label-medium-size);
    font-weight: 700;
    letter-spacing: 0.02em;
}

.asufuru-rw-chiplist {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: var(--md-sys-spacing-2);
}

.asufuru-rw-chiplist li {
    margin: 0;
    padding: 0;
}

.asufuru-rw-chip {
    display: inline-flex;
    align-items: center;
    padding: var(--md-sys-spacing-1) var(--md-sys-spacing-3);
    background: var(--md-sys-color-primary-container);
    color: var(--md-sys-color-on-primary-container) !important;
    border: 1px solid transparent;
    border-radius: var(--md-sys-shape-corner-full);
    font-size: var(--md-sys-typescale-label-medium-size);
    font-weight: 700;
    text-decoration: none;
    line-height: 1.5;
    transition:
        background-color var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-standard),
        color var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-standard);
}

.asufuru-rw-chip:hover {
    background: var(--md-sys-color-primary);
    color: var(--md-sys-color-on-primary) !important;
}

.asufuru-rw-chip--soft {
    background: var(--md-sys-color-surface-container);
    color: var(--md-sys-color-on-surface) !important;
    border-color: var(--md-sys-color-outline-variant);
}

.asufuru-rw-chip--soft:hover {
    background: var(--md-sys-color-secondary-container);
    color: var(--md-sys-color-on-secondary-container) !important;
    border-color: var(--md-sys-color-secondary-container);
}

.asufuru-rw-explore__links {
    display: flex;
    flex-direction: column;
    gap: var(--md-sys-spacing-1);
    padding-top: var(--md-sys-spacing-3);
    border-top: 1px solid var(--md-sys-color-outline-variant);
}

/* --------------------------------------------------------------------------
   W4: 関連団体（多様性）
   -------------------------------------------------------------------------- */
.asufuru-rw-cardlist {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--md-sys-spacing-3);
}

.asufuru-rw-cardlist__item {
    margin: 0;
    padding: 0;
}

/* サイドバー幅（〜260px）に向けたコンパクトな統一カードレイアウト。
   既存 .asufuru-unified-card のトークンを尊重しつつ、横並びの 64px サムネ + テキストに調整。 */
.asufuru-widget--related .asufuru-unified-card {
    display: grid;
    grid-template-columns: 96px 1fr;
    grid-template-rows: auto;
    gap: var(--md-sys-spacing-3);
    padding: var(--md-sys-spacing-3);
    background: var(--md-sys-color-surface-container-lowest);
    border: 1px solid var(--md-sys-color-outline-variant);
    border-radius: var(--md-sys-shape-corner-small);
    box-shadow: none;
    overflow: hidden;
}

.asufuru-widget--related .asufuru-unified-card:hover {
    border-color: var(--md-sys-color-primary);
    transform: none;
    box-shadow: var(--md-sys-elevation-1);
}

.asufuru-widget--related .asufuru-unified-card__image-link {
    grid-row: 1 / span 4;
    grid-column: 1;
    align-self: start;
}

.asufuru-widget--related .asufuru-unified-card__image-wrap {
    aspect-ratio: 1 / 1;
    border-radius: var(--md-sys-shape-corner-small);
    overflow: hidden;
}

.asufuru-widget--related .asufuru-unified-card__body {
    grid-column: 2;
    padding: 0;
    gap: var(--md-sys-spacing-1);
}

.asufuru-widget--related .asufuru-unified-card__title {
    font-size: var(--md-sys-typescale-label-large-size) !important;
    line-height: 1.45 !important;
    -webkit-line-clamp: 2;
}

.asufuru-widget--related .asufuru-unified-card__meta {
    font-size: var(--md-sys-typescale-label-small-size) !important;
}

.asufuru-widget--related .asufuru-unified-card__rating-row {
    gap: var(--md-sys-spacing-1) var(--md-sys-spacing-2);
    padding-top: 0;
    font-size: var(--md-sys-typescale-label-small-size);
}

.asufuru-widget--related .asufuru-unified-card__rating-num {
    font-size: var(--md-sys-typescale-label-medium-size);
}

.asufuru-widget--related .asufuru-unified-card__cta,
.asufuru-widget--related .asufuru-unified-card__cta-group {
    display: none !important;
}

/* --------------------------------------------------------------------------
   W5: 比較・最後に見た
   -------------------------------------------------------------------------- */
.asufuru-rw-compare {
    display: flex;
    flex-direction: column;
    gap: var(--md-sys-spacing-3);
}

.asufuru-rw-compare__head {
    display: flex;
    gap: var(--md-sys-spacing-1);
    padding: var(--md-sys-spacing-1);
    background: var(--md-sys-color-surface-container);
    border-radius: var(--md-sys-shape-corner-full);
}

.asufuru-rw-compare__tab {
    flex: 1;
    margin: 0;
    padding: var(--md-sys-spacing-2) var(--md-sys-spacing-3);
    background: transparent;
    border: 0;
    border-radius: var(--md-sys-shape-corner-full);
    color: var(--md-sys-color-on-surface-variant);
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: var(--md-sys-typescale-label-medium-size);
    line-height: 1.4;
    cursor: pointer;
    transition:
        background-color var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-standard),
        color var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-standard);
}

.asufuru-rw-compare__tab:hover {
    color: var(--md-sys-color-on-surface);
}

.asufuru-rw-compare__tab.is-active {
    background: var(--md-sys-color-primary);
    color: var(--md-sys-color-on-primary);
}

.asufuru-rw-compare__panel {
    display: flex;
    flex-direction: column;
    gap: var(--md-sys-spacing-3);
}

.asufuru-rw-compare__panel.is-hidden,
.asufuru-rw-compare__panel[hidden] {
    display: none;
}

.asufuru-rw-compare__cards {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--md-sys-spacing-2);
}

.asufuru-rw-compare__card {
    margin: 0;
    padding: 0;
}

.asufuru-rw-compare__card a {
    display: grid;
    grid-template-columns: 64px 1fr;
    align-items: center;
    gap: var(--md-sys-spacing-3);
    padding: var(--md-sys-spacing-2);
    background: var(--md-sys-color-surface-container-lowest);
    border: 1px solid var(--md-sys-color-outline-variant);
    border-radius: var(--md-sys-shape-corner-small);
    color: var(--md-sys-color-on-surface) !important;
    text-decoration: none;
    transition:
        background-color var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-standard),
        border-color var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-standard);
}

.asufuru-rw-compare__card a:hover {
    background: var(--md-sys-color-surface-container);
    border-color: var(--md-sys-color-primary);
    text-decoration: none;
}

.asufuru-rw-compare__thumb {
    width: 64px;
    height: 64px;
    overflow: hidden;
    background: var(--md-sys-color-surface-container);
    border-radius: var(--md-sys-shape-corner-small);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

.asufuru-rw-compare__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.asufuru-rw-compare__thumb--placeholder {
    background:
        linear-gradient(135deg, var(--md-sys-color-surface-container) 0%, var(--md-sys-color-surface-container-high) 100%);
}

.asufuru-rw-compare__cardbody {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.asufuru-rw-compare__title {
    font-weight: 800;
    font-size: var(--md-sys-typescale-label-large-size);
    line-height: 1.4;
    color: var(--md-sys-color-on-surface);
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.asufuru-rw-compare__meta {
    font-size: var(--md-sys-typescale-label-small-size);
    color: var(--md-sys-color-on-surface-variant);
}

.asufuru-rw-compare__rating {
    margin-top: 2px;
    font-size: var(--md-sys-typescale-label-small-size);
    font-weight: 800;
    color: var(--md-sys-color-primary);
}

.asufuru-rw-compare__empty {
    margin: 0;
    padding: var(--md-sys-spacing-3) var(--md-sys-spacing-4);
    background: var(--md-sys-color-surface-container);
    border-radius: var(--md-sys-shape-corner-small);
    color: var(--md-sys-color-on-surface-variant);
    font-size: var(--md-sys-typescale-body-small-size);
    line-height: 1.7;
}

/* --------------------------------------------------------------------------
   W6: 活動報告ティーザー
   -------------------------------------------------------------------------- */
.asufuru-rw-updates {
    display: flex;
    flex-direction: column;
    gap: var(--md-sys-spacing-3);
}

.asufuru-rw-updates__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--md-sys-spacing-2);
}

.asufuru-rw-updates__item {
    margin: 0;
    padding: 0;
}

.asufuru-rw-updates__link {
    display: grid;
    grid-template-columns: 72px 1fr;
    gap: var(--md-sys-spacing-3);
    align-items: center;
    padding: var(--md-sys-spacing-2);
    background: var(--md-sys-color-surface-container-lowest);
    border: 1px solid var(--md-sys-color-outline-variant);
    border-radius: var(--md-sys-shape-corner-small);
    color: var(--md-sys-color-on-surface) !important;
    text-decoration: none;
    transition:
        background-color var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-standard),
        border-color var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-standard);
}

.asufuru-rw-updates__link:hover {
    background: var(--md-sys-color-surface-container);
    border-color: var(--md-sys-color-primary);
    text-decoration: none;
}

.asufuru-rw-updates__thumb {
    width: 72px;
    height: 72px;
    overflow: hidden;
    background: var(--md-sys-color-surface-container);
    border-radius: var(--md-sys-shape-corner-small);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

.asufuru-rw-updates__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.asufuru-rw-updates__thumb--placeholder {
    background:
        linear-gradient(135deg, var(--md-sys-color-surface-container) 0%, var(--md-sys-color-surface-container-high) 100%);
}

.asufuru-rw-updates__body {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.asufuru-rw-updates__title {
    font-weight: 800;
    font-size: var(--md-sys-typescale-label-large-size);
    line-height: 1.4;
    color: var(--md-sys-color-on-surface);
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.asufuru-rw-updates__excerpt {
    font-size: var(--md-sys-typescale-label-small-size);
    line-height: 1.55;
    color: var(--md-sys-color-on-surface-variant);
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.asufuru-rw-updates__meta {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--md-sys-spacing-1) var(--md-sys-spacing-2);
    margin-top: 2px;
    color: var(--md-sys-color-on-surface-variant);
    font-size: var(--md-sys-typescale-label-small-size);
}

.asufuru-rw-updates__cheer {
    display: inline-flex;
    align-items: center;
    padding: 0 var(--md-sys-spacing-2);
    background: var(--md-sys-color-tertiary-container);
    border-radius: var(--md-sys-shape-corner-full);
    color: var(--md-sys-color-on-tertiary-container);
    font-weight: 800;
    font-size: var(--md-sys-typescale-label-small-size);
    line-height: 1.6;
}

/* --------------------------------------------------------------------------
   W7: 運営コントロール枠
   -------------------------------------------------------------------------- */
.asufuru-rw-promo {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: var(--md-sys-spacing-3);
}

.asufuru-rw-promo__pr {
    align-self: flex-start;
    padding: 2px var(--md-sys-spacing-2);
    background: var(--md-sys-color-surface-container);
    color: var(--md-sys-color-on-surface-variant);
    border: 1px solid var(--md-sys-color-outline);
    border-radius: var(--md-sys-shape-corner-extra-small);
    font-family: 'Plus Jakarta Sans', 'Noto Sans JP', sans-serif;
    font-size: var(--md-sys-typescale-label-small-size);
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1.5;
}

.asufuru-rw-promo__image {
    margin: 0;
    border-radius: var(--md-sys-shape-corner-small);
    overflow: hidden;
    background: var(--md-sys-color-surface-container);
}

.asufuru-rw-promo__image img {
    width: 100%;
    height: auto;
    display: block;
}

.asufuru-rw-promo__body {
    color: var(--md-sys-color-on-surface);
    font-size: var(--md-sys-typescale-body-medium-size);
    line-height: 1.7;
}

.asufuru-rw-promo__body p {
    margin: 0 0 var(--md-sys-spacing-2);
}

.asufuru-rw-promo__body p:last-child {
    margin-bottom: 0;
}

.asufuru-rw-promo.is-pr {
    padding: var(--md-sys-spacing-3);
    background: var(--md-sys-color-surface-container);
    border-radius: var(--md-sys-shape-corner-small);
}
