/* KizunaGo Ads Runtime Wrapper Fix
   Only affects ad blocks explicitly wrapped/detected by JS or already marked as ad.
*/

.kz-ad-runtime,
[data-kizunago-ad],
[data-ad-slot],
[data-placement],
.kz-ad-unit,
.kz-ad-card,
.kz-ad-sidebar,
.kz-ad-inline,
.kz-ad-top,
.student-ad,
.ad-card,
.sponsor-card,
.sponsored-card {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
    background: #ffffff !important;
    border: 1px solid rgba(15, 23, 42, .08) !important;
    border-radius: 22px !important;
    box-shadow: 0 16px 38px rgba(15, 23, 42, .055) !important;
}

/* runtime wrapper variants */
.kz-ad-runtime {
    margin: 22px 0 !important;
    padding: 0 0 16px !important;
}

.kz-ad-runtime-sidebar {
    max-width: 360px !important;
    margin: 0 auto 18px !important;
    padding-bottom: 14px !important;
}

.kz-ad-runtime-inline {
    max-width: 100% !important;
}

.kz-ad-runtime-top {
    max-width: min(100%, 1120px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* media inside ad wrappers */
.kz-ad-runtime > img,
.kz-ad-runtime > video,
.kz-ad-runtime > iframe,
[data-kizunago-ad] > img,
[data-ad-slot] > img,
[data-placement] > img,
.kz-ad-unit > img,
.kz-ad-card > img,
.kz-ad-sidebar > img,
.kz-ad-inline > img,
.kz-ad-top > img,
.student-ad > img,
.ad-card > img,
.sponsor-card > img,
.sponsored-card > img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    object-fit: cover !important;
    object-position: center !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
}

/* plain image ad proportion */
.kz-ad-runtime > img,
[data-kizunago-ad] > img,
[data-ad-slot] > img,
[data-placement] > img,
.kz-ad-unit > img,
.kz-ad-card > img,
.kz-ad-inline > img,
.student-ad > img,
.ad-card > img,
.sponsor-card > img,
.sponsored-card > img {
    aspect-ratio: 16 / 6 !important;
    max-height: 280px !important;
}

/* sidebar ad proportion */
.kz-ad-runtime-sidebar > img,
.kz-ad-sidebar > img,
[data-ad-slot="right_side"] > img,
[data-ad-slot="sidebar"] > img,
[data-placement="right_side"] > img {
    aspect-ratio: 4 / 3 !important;
    max-height: 240px !important;
}

/* top ad proportion */
.kz-ad-runtime-top > img,
.kz-ad-top > img,
[data-ad-slot="top_banner"] > img,
[data-placement="top_banner"] > img,
[data-placement="course_page"] > img {
    aspect-ratio: 16 / 5 !important;
    max-height: 340px !important;
}

/* video ads */
.kz-ad-runtime > video,
.kz-ad-runtime > iframe,
[data-kizunago-ad] > video,
[data-ad-slot] > video,
[data-placement] > video,
.kz-ad-unit > video,
.kz-ad-card > video,
.kz-ad-inline > video,
.kz-ad-top > video,
.student-ad > video,
.ad-card > video,
.sponsor-card > video,
.sponsored-card > video {
    aspect-ratio: 16 / 9 !important;
    max-height: 360px !important;
    background: #0f172a !important;
}

/* content spacing inside ads */
.kz-ad-runtime > :not(img):not(video):not(iframe):not(picture),
[data-kizunago-ad] > :not(img):not(video):not(iframe):not(picture),
[data-ad-slot] > :not(img):not(video):not(iframe):not(picture),
[data-placement] > :not(img):not(video):not(iframe):not(picture),
.kz-ad-unit > :not(img):not(video):not(iframe):not(picture),
.kz-ad-card > :not(img):not(video):not(iframe):not(picture),
.kz-ad-sidebar > :not(img):not(video):not(iframe):not(picture),
.kz-ad-inline > :not(img):not(video):not(iframe):not(picture),
.kz-ad-top > :not(img):not(video):not(iframe):not(picture),
.student-ad > :not(img):not(video):not(iframe):not(picture),
.ad-card > :not(img):not(video):not(iframe):not(picture),
.sponsor-card > :not(img):not(video):not(iframe):not(picture),
.sponsored-card > :not(img):not(video):not(iframe):not(picture) {
    margin-left: 16px !important;
    margin-right: 16px !important;
}

.kz-ad-runtime > :last-child,
[data-kizunago-ad] > :last-child,
[data-ad-slot] > :last-child,
[data-placement] > :last-child,
.kz-ad-unit > :last-child,
.kz-ad-card > :last-child,
.kz-ad-sidebar > :last-child,
.kz-ad-inline > :last-child,
.kz-ad-top > :last-child,
.student-ad > :last-child,
.ad-card > :last-child,
.sponsor-card > :last-child,
.sponsored-card > :last-child {
    margin-bottom: 16px !important;
}

.kz-ad-runtime .kz-ad-sponsored-label,
.kz-ad-runtime .sponsored-label,
[data-kizunago-ad] .sponsored-label,
[data-ad-slot] .sponsored-label,
[data-placement] .sponsored-label {
    display: block !important;
    color: #64748b !important;
    font-size: .72rem !important;
    line-height: 1.2 !important;
    font-weight: 850 !important;
    text-transform: uppercase !important;
    letter-spacing: .12em !important;
    margin-top: 12px !important;
    margin-bottom: 6px !important;
}

.kz-ad-runtime h3,
.kz-ad-runtime .ad-title,
[data-kizunago-ad] h3,
[data-kizunago-ad] .ad-title,
[data-ad-slot] h3,
[data-ad-slot] .ad-title,
[data-placement] h3,
[data-placement] .ad-title {
    color: #0f172a !important;
    font-size: 1rem !important;
    line-height: 1.25 !important;
    font-weight: 850 !important;
    margin-top: 0 !important;
    margin-bottom: 6px !important;
    letter-spacing: -.02em !important;
}

.kz-ad-runtime p,
.kz-ad-runtime .ad-body,
[data-kizunago-ad] p,
[data-kizunago-ad] .ad-body,
[data-ad-slot] p,
[data-ad-slot] .ad-body,
[data-placement] p,
[data-placement] .ad-body {
    color: #475569 !important;
    font-size: .9rem !important;
    line-height: 1.55 !important;
    margin-top: 0 !important;
    margin-bottom: 12px !important;
}

.kz-ad-runtime a.btn,
.kz-ad-runtime button,
[data-kizunago-ad] a.btn,
[data-kizunago-ad] button,
[data-ad-slot] a.btn,
[data-ad-slot] button,
[data-placement] a.btn,
[data-placement] button {
    min-height: 38px !important;
    border-radius: 12px !important;
    font-size: .86rem !important;
    font-weight: 850 !important;
    max-width: calc(100% - 32px) !important;
}

/* Fullscreen popup: only media fit */
[data-ad-slot="fullscreen"] > img,
[data-placement="fullscreen_video"] > img,
.kz-ad-popup > img,
[data-ad-slot="fullscreen"] > video,
[data-placement="fullscreen_video"] > video,
.kz-ad-popup > video {
    max-height: 72vh !important;
    object-fit: contain !important;
}

/* Defensive: old incorrect classes must not style normal lesson blocks */
.kz-sponsored:not(.kz-ad-runtime):not([data-kizunago-ad]):not([data-ad-slot]):not([data-placement]):not(.student-ad):not(.ad-card):not(.sponsor-card):not(.sponsored-card) {
    background: inherit !important;
    border: inherit !important;
    box-shadow: inherit !important;
    border-radius: inherit !important;
    overflow: visible !important;
}

@media (max-width: 991.98px) {
    .kz-ad-runtime-sidebar,
    .kz-ad-sidebar,
    [data-ad-slot="right_side"],
    [data-ad-slot="sidebar"],
    [data-placement="right_side"] {
        max-width: 100% !important;
    }

    .kz-ad-runtime-sidebar > img,
    .kz-ad-sidebar > img,
    [data-ad-slot="right_side"] > img,
    [data-ad-slot="sidebar"] > img,
    [data-placement="right_side"] > img {
        max-height: 220px !important;
    }
}
