/* 共通の会話部品。セレクターは週刊誌面内に限定。 */
.weekly .wc-avatar { display: block; width: var(--wc-size, 64px); height: var(--wc-size, 64px); max-width: 100%; flex: 0 0 auto; object-fit: contain; border: 0; border-radius: 0; }
.weekly .wc-dialogue { margin: 24px 0 0; color: #293844; }
.weekly .wc-dialogue ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 17px; }
.weekly .wc-dialogue-title { margin: 0 0 20px; font-weight: 800; font-size: 16px; }
.weekly .wc-line { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 13px; align-items: start; }
.weekly .wc-speaker { font-size: 12px; font-weight: 800; line-height: 1.65; margin: 0 0 5px; }
.weekly .wc-text { font-size: 14px; line-height: 1.95; }
.weekly .wc-speech { min-width: 0; border-left: 3px solid var(--wc-accent); padding: 3px 0 3px 12px; }
.weekly .wc-dialogue-bubble .wc-speech { position: relative; background: #fffdf8; border: 2px solid #293844; border-radius: 4px 17px 17px 17px; padding: 12px 16px; box-shadow: 3px 3px 0 var(--wc-accent); }
.weekly .wc-dialogue-bubble .wc-speech::before { content: ''; position: absolute; width: 9px; height: 9px; background: #fffdf8; border-left: 2px solid #293844; border-bottom: 2px solid #293844; top: 16px; left: -6px; transform: rotate(45deg); }
.weekly .wc-dialogue-sticky { padding: 18px; background: #fff0b9; border: 1px solid #d6bd78; box-shadow: 4px 4px 0 #ece3c6; }
.weekly .wc-dialogue-sticky .wc-line { grid-template-columns: 48px minmax(0, 1fr); gap: 10px; }
.weekly .wc-dialogue-sticky .wc-avatar { width: 48px; height: 48px; }
.weekly .wc-dialogue-sticky .wc-speech { border: 0; padding: 0; }
.weekly .wc-dialogue-meeting { padding: 24px; background: #e8f0ed; border: 2px solid #293844; border-radius: 8px; }
.weekly .wc-dialogue-meeting .wc-line { padding: 14px 0; border-top: 1px dashed #aabcb5; }
.weekly .wc-dialogue-meeting .wc-speech { background: #fffdf8; border-left: 4px solid var(--wc-accent); padding: 10px 14px; }
.weekly .w-fortune .wc-dialogue-plain { color: #fff8e9; }
.weekly .wc-comic { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.weekly .wc-panel { position: relative; overflow: hidden; padding: 18px; min-width: 0; min-height: 260px; border: 3px solid #293844; background: #ede9d8; }
.weekly .wc-panel-desk { background: linear-gradient(0deg, #d9c49a 0 15%, #f5eee0 15% 80%, #deeadf 80%); }
.weekly .wc-panel-magic { background: radial-gradient(ellipse at 10% 90%, #ddd0ee 10%, transparent 60%), #e7eaf8; }
.weekly .wc-panel-sparkle { background: repeating-linear-gradient(135deg, #fff1bc 0 26px, #fbe6a2 26px 28px); }
.weekly .wc-panel-title { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; }
.weekly .wc-panel-title > span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; color: #fff; background: #293844; font-size: 13px; font-weight: bold; }
.weekly .wc-panel-title h3 { font-size: 17px; }
.weekly .wc-comic-line { display: grid; grid-template-columns: 80px minmax(0, 1fr); gap: 12px; margin-top: 17px; align-items: end; }
.weekly .wc-comic-line .wc-avatar { width: 80px; height: 80px; }
.weekly .wc-comic-bubble { padding: 12px; background: white; border: 2px solid #293844; border-radius: 14px 14px 14px 2px; line-height: 1.85; font-size: 14px; }
.weekly .wc-lab-hero { padding: 45px 30px; background: #ffe1cc; border-bottom: 3px solid #293844; }
.weekly .wc-lab-hero h1 { margin: 16px 0; font-size: clamp(38px, 6vw, 65px); font-weight: 900; line-height: 1.35; letter-spacing: -.04em; }
.weekly .wc-lab-hero > p:not(.w-eyebrow) { margin-bottom: 24px; }
.weekly .wc-lab-label { display: block; font-size: 10px; font-weight: bold; letter-spacing: .12em; }
.weekly .wc-lab-toc { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px 15px; padding: 25px 30px; background: #fff7df; }
.weekly .wc-lab-toc a { min-height: 44px; display: flex; align-items: center; border-bottom: 1px dotted #cabda3; font-size: 13px; font-weight: 700; }
.weekly .wc-cast-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.weekly .wc-profile { padding: 22px; background: #fffdf9; border: 1px solid #d7ddd1; border-top: 4px solid var(--wc-accent); }
.weekly .wc-profile-top { display: flex; gap: 15px; align-items: center; }
.weekly .wc-profile-top h3 { font-size: 19px; }
.weekly .wc-reading { font-size: 11px; }
.weekly .wc-role { font-size: 12px; margin: 17px 0; }
.weekly .wc-profile blockquote { padding: 15px 0; border-top: 1px dashed #cbd1c5; font-size: 14px; font-weight: 700; margin: 0; }
.weekly .wc-swatches { display: flex; flex-wrap: wrap; gap: 10px; margin: 15px 0 0; padding: 0; list-style: none; }
.weekly .wc-swatches li { display: flex; gap: 5px; align-items: center; font-size: 10px; }
.weekly .wc-swatches span { display: block; width: 16px; height: 16px; border: 1px solid #66716c; border-radius: 50%; }
.weekly .wc-size-grid { display: grid; gap: 30px; }
.weekly .wc-size-grid article { border-top: 1px dashed #bcc4b4; padding-top: 18px; }
.weekly .wc-size-grid h3, .weekly .wc-expression-grid h3 { font-size: 19px; margin-bottom: 16px; }
.weekly .wc-size-row { display: flex; align-items: end; flex-wrap: wrap; gap: 26px; }
.weekly .wc-size-row figure { display: grid; justify-items: center; }
.weekly .wc-size-row figcaption, .weekly .wc-expression-row figcaption, .weekly .wc-ensemble figcaption { font-size: 11px; text-align: center; margin-top: 8px; }
.weekly .wc-lab-expressions { background: #e8eee4; }
.weekly .wc-expression-grid { display: grid; gap: 30px; }
.weekly .wc-expression-grid article { border-top: 1px dashed #bcc4b4; padding-top: 18px; }
.weekly .wc-expression-row { display: flex; flex-wrap: wrap; gap: 22px; }
.weekly .wc-lab-meeting { background: #fff0d1; }
.weekly .wc-ensemble { display: flex; justify-content: center; flex-wrap: wrap; gap: 18px; }
.weekly .wc-scene { padding: 35px 0; border-top: 1px dashed #c6cdbd; }
.weekly .wc-scene > h3 { margin-top: 9px; }
.weekly .wc-lab-patterns { background: #ecf0f3; }
.weekly .wc-pattern-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.weekly .wc-pattern-grid > article > h3 { font-size: 18px; margin-bottom: 20px; }
.weekly .wc-pattern-grid .wc-dialogue { margin: 0; }
.weekly .wc-pattern-grid .wc-dialogue-meeting { padding: 14px; }
.weekly .wc-article-sample { padding: 25px; margin-top: 25px; border: 1px solid #d0d8ca; background: #f8f6e9; }
.weekly .wc-article-sample > h3 { margin: 10px 0 17px; }
.weekly .wc-article-sample > p:not(.w-eyebrow) { font-size: 15px; }
.weekly .wc-sample-maker { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.weekly .wc-sample-fortune { background: #e8dff0; }
.weekly .wc-sample-advice { background: #fae9de; }
.weekly .wc-lab-comic { background: #e6ebd6; }
/* 創刊号のコンパクトな編集部紹介。 */
.weekly .wc-introduction { background: #fff4da; }
.weekly .wc-introduction > header h2 { font-size: clamp(23px, 4vw, 32px); line-height: 1.5; margin-top: 9px; }
.weekly .wc-intro-grid, .weekly .wc-intro-guests { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.weekly .wc-intro-card { display: grid; grid-template-columns: 64px minmax(0, 1fr); align-items: start; gap: 13px; padding: 18px; background: #fffdf8; border: 1px solid #dccfb7; border-top: 4px solid var(--wc-accent); border-radius: 12px; }
.weekly .wc-intro-card h3, .weekly .wc-intro-card h4 { font-size: 16px; line-height: 1.65; overflow-wrap: anywhere; }
.weekly .wc-intro-card p { margin-top: 9px; font-size: 13px; line-height: 1.95; }
.weekly .wc-intro-card .wc-intro-reading { margin-top: 0; font-size: 11px; }
.weekly .wc-intro-guests-title { margin: 28px 0 16px; font-size: 17px; }
.weekly .wc-intro-guests { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.weekly .wc-intro-guests .wc-intro-card { grid-template-columns: 48px minmax(0, 1fr); gap: 10px; padding: 14px; }
.weekly .wc-intro-guests .wc-intro-card h4 { font-size: 14px; }
@media (max-width: 900px) {
    .weekly .wc-intro-guests { grid-template-columns: 1fr; }
}
@media (max-width: 639px) {
    .weekly .wc-intro-grid { grid-template-columns: 1fr; }
    .weekly .wc-intro-card { padding: 15px 12px; }
    .weekly .wc-lab-hero { padding: 32px 18px; }
    .weekly .wc-lab-toc { padding: 20px 18px; grid-template-columns: 1fr 1fr; }
    .weekly .wc-cast-grid, .weekly .wc-comic, .weekly .wc-pattern-grid, .weekly .wc-sample-maker { grid-template-columns: 1fr; }
    .weekly .wc-profile { padding: 17px; }
    .weekly .wc-profile-top { gap: 12px; }
    .weekly .wc-profile-top .wc-avatar { width: 80px; height: 80px; }
    .weekly .wc-profile-top h3 { font-size: 18px; }
    .weekly .wc-line { grid-template-columns: 48px minmax(0, 1fr); gap: 10px; }
    .weekly .wc-line .wc-avatar { width: 48px; height: 48px; }
    .weekly .wc-speech { padding-left: 10px; }
    .weekly .wc-dialogue-bubble .wc-speech { padding: 10px 12px; }
    .weekly .wc-dialogue-meeting { padding: 16px 12px; }
    .weekly .wc-dialogue-meeting .wc-speech { padding: 8px 10px; }
    .weekly .wc-dialogue-sticky { padding: 15px 12px; }
    .weekly .wc-text { font-size: 14px; }
    .weekly .wc-size-row { gap: 20px 16px; }
    .weekly .wc-expression-row { gap: 18px; }
    .weekly .wc-expression-row .wc-avatar { width: 96px; height: 96px; }
    .weekly .wc-article-sample { padding: 18px 12px; }
    .weekly .wc-panel { padding: 16px 12px; }
    .weekly .wc-comic-line { grid-template-columns: 64px minmax(0, 1fr); gap: 10px; }
    .weekly .wc-comic-line .wc-avatar { width: 64px; height: 64px; }
}
