/**
 * 리브레토 - 메인 스타일
 * Tailwind CDN은 HTML에서 직접 로드
 */

@import '_variables.css?v=20260303a';
@import '_reset.css?v=20260519a';
@import '_typography.css?v=20260303a';
@import '_layout.css?v=20260804a';
@import '_article.css?v=20260722b';

/* === Google AdSense 광고 슬롯 (2026-05-20 추가) === */
.insight-card-wrap--ad { position: relative; }
.insight-card--ad {
    display: flex; flex-direction: column; min-height: 280px;
    border: 1px solid var(--line, #e5e7eb); border-radius: 8px;
    overflow: hidden; background: var(--paper-2, #fafaf7);
    position: relative; contain: layout;
}
.insight-card__ad-label {
    position: absolute; top: 8px; right: 8px; z-index: 2;
    font-size: 10px; color: #c8c8c8; opacity: 0.7;
    background: rgba(255,255,255,0.6); padding: 2px 6px;
    border-radius: 4px; letter-spacing: 0.04em;
}
.insight-card--ad ins.adsbygoogle { display: block; min-height: 280px; width: 100%; }
.insight-card--ad__placeholder {
    display: flex; align-items: center; justify-content: center;
    min-height: 280px; color: var(--mute, #aaa); font-size: 13px;
    background: linear-gradient(180deg, transparent, rgba(0,0,0,0.02));
}
.ad-slot {
    display: block; margin: 32px 0 24px; padding: 0;
    position: relative; contain: layout;
}
.ad-slot__label {
    display: block; font-size: 10px; color: #c8c8c8; opacity: 0.7;
    margin-bottom: 6px; letter-spacing: 0.05em;
}
.ad-slot--in-article ins.adsbygoogle { display: block; min-height: 250px; }
.ad-slot--multiplex { margin: 40px 0 24px; }
.ad-slot--multiplex ins.adsbygoogle { display: block; min-height: 300px; }
.aside-block--ad {
    margin-top: 18px; padding: 12px; border-radius: 8px;
    background: var(--paper-2, #fafaf7);
    border: 1px solid var(--line, #e5e7eb);
    position: relative; contain: layout;
}
.aside-block__ad-label {
    display: block; font-size: 10px; color: #c8c8c8; opacity: 0.7;
    margin-bottom: 6px; letter-spacing: 0.05em;
}
.aside-block--ad ins.adsbygoogle { display: block; min-height: 250px; }
@media (max-width: 640px) {
    .insight-card--ad,
    .insight-card--ad ins.adsbygoogle,
    .insight-card--ad__placeholder { min-height: 250px; }
    .ad-slot--in-article ins.adsbygoogle,
    .aside-block--ad ins.adsbygoogle { min-height: 220px; }
}

/* no-fill(재고 없음) 슬롯 자동 접기 — 애드센스가 채우지 못하면 '광고' 라벨·빈칸까지 통째로 숨긴다.
   ins 는 채워질 때만 data-ad-status="filled", 못 채우면 "unfilled" 가 붙는다. (모바일 멀티플렉스 no-fill 대응) */
ins.adsbygoogle[data-ad-status="unfilled"] { display: none !important; min-height: 0 !important; }
.ad-slot:has(> ins.adsbygoogle[data-ad-status="unfilled"]),
.insight-card-wrap--ad:has(ins.adsbygoogle[data-ad-status="unfilled"]),
.aside-block--ad:has(> ins.adsbygoogle[data-ad-status="unfilled"]) { display: none !important; }
