/* ===== L04 (Bunzo-like) ===== */
.l04-main{ background: var(--bg); padding: 12px 0 30px; }

.l04-header{ background: rgba(255,255,255,.92); backdrop-filter: blur(10px); border-bottom: 1px solid var(--border); }
.l04-top{ display:flex; align-items:center; justify-content:space-between; gap:14px; padding-top:12px; padding-bottom:12px; }

.l04-brand{ display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--text); }
.l04-brand-mark{ width:28px; height:28px; display:inline-flex; align-items:center; justify-content:center; border-radius:10px; background: var(--primary-soft); font-weight:900; }
.l04-brand-text{ font-weight:900; letter-spacing:.04em; text-transform:uppercase; }

.l04-promo{ flex:1; max-width: 520px; margin: 0 12px; padding: 10px 12px; border:1px solid var(--border); border-radius: 14px; background: var(--card); box-shadow: var(--shadow-soft); }
.l04-promo-title{ font-size:12px; font-weight:800; color:white; }
.l04-promo-sub{ font-size:12px; color:white; margin-top:2px; }

.l04-actions{ display:flex; align-items:center; gap:10px; }
.l04-icon-btn{ width:38px; height:38px; border-radius:12px; border:1px solid var(--border); background:var(--card); box-shadow: var(--shadow-soft); cursor:pointer; }
.l04-burger{ width:44px; height:44px; border-radius:14px; border:1px solid var(--border); background:var(--card); box-shadow: var(--shadow-soft); cursor:pointer; display:none; }

.l04-navrow{ border-top: 1px solid rgba(0,0,0,.03); background: rgba(255,255,255,.92); }
.l04-navrow-inner{ padding-top: 10px; padding-bottom: 10px; }
.l04-nav{ display:flex; align-items:center; justify-content:center; gap: 14px; }
.l04-nav a{ text-decoration:none; color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:.12em; padding:10px 12px; border-radius:12px; }
.l04-nav a:hover{ color:var(--text); background: rgba(0,0,0,.04); }
.l04-nav a.is-active{ color:var(--text); background: var(--primary-soft); }

.l04-drawer{ display:none; border-top:1px solid var(--border); background: rgba(255,255,255,.96); }
.l04-drawer[data-drawer="true"]{ display:block; }
.l04-drawer-inner{ padding: 12px 18px 16px; display:grid; gap: 10px; }
.l04-drawer a{ text-decoration:none; color:var(--text); font-weight:800; padding: 10px 12px; border-radius: 12px; background: var(--card); border:1px solid var(--border); }

/* HERO */
.l04-hero{ display:grid; grid-template-columns: 86px minmax(0, 1fr) 360px; gap: 18px; align-items:start; margin-top: 16px; }
.l04-thumbs{ display:flex; flex-direction:column; gap: 12px; }
.l04-thumb{ display:block; border-radius: 18px; overflow:hidden; border:1px solid var(--border); background: var(--card); box-shadow: var(--shadow-soft); }
.l04-thumb img{ width:100%; height:72px; object-fit:cover; display:block; }
.l04-thumb-ph{ height:72px; background:#eceff3; }

.l04-feature{ background: var(--card); border:1px solid var(--border); border-radius: 20px; overflow:hidden; box-shadow: var(--shadow); }
.l04-feature-media img, .l04-feature-ph{ width:100%; height: 320px; object-fit:cover; display:block; background:#eceff3; }
.l04-feature-body{ padding: 14px 16px 16px; }
.l04-chip{ display:inline-flex; align-items:center; font-size:11px; font-weight:900; padding:6px 10px; border-radius:999px; background: var(--primary-soft); color:var(--text); }
.l04-feature-title{ margin: 10px 0 8px; font-size: 22px; line-height: 1.2; letter-spacing: -0.02em; }
.l04-feature-title a{ color: var(--text); text-decoration:none; }
.l04-feature-title a:hover{ text-decoration:underline; }

.l04-meta{ display:flex; gap: 8px; align-items:center; flex-wrap:wrap; font-size:12px; color: var(--muted); margin-top: 6px; }
.l04-excerpt{ color: var(--muted); font-size: 13px; line-height: 1.5; margin: 10px 0 0; }
.l04-excerpt.small{ display:-webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow:hidden; }

.l04-hero-right{ display:flex; flex-direction:column; gap: 14px; }
.l04-sidecard{ background: var(--card); border:1px solid var(--border); border-radius: 18px; padding: 14px 14px 12px; box-shadow: var(--shadow-soft); }
.l04-sidecard-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.l04-by{ font-size:12px; color: var(--muted); }
.l04-sidecard-title{ margin: 10px 0 6px; font-size: 15px; line-height:1.25; }
.l04-sidecard-title a{ color: var(--text); text-decoration:none; }
.l04-sidecard-title a:hover{ text-decoration:underline; }

/* TRENDING */
.l04-trending{ margin-top: 22px; padding-top: 18px; border-top: 1px solid rgba(0,0,0,.05); }
.l04-trending-head{ display:flex; align-items:center; justify-content:space-between; gap: 12px; margin-bottom: 12px; }
.l04-section-title{ margin:0; font-size: 16px; letter-spacing: .06em; text-transform: uppercase; color: var(--text); }
.l04-trending-controls{ display:flex; gap:10px; }
.l04-arrow{ width:40px; height:40px; border-radius:12px; border:1px solid var(--border); background: var(--card); box-shadow: var(--shadow-soft); cursor:pointer; }

.l04-trending-viewport{ overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling: touch; }
.l04-trending-track{ display:flex; gap: 18px; padding: 4px; width:max-content; }

/* trend card (reuses strip-item/slide) */
.l04-trendcard{ flex: 0 0 520px; max-width: 520px; display:grid; grid-template-columns: 220px 1fr; gap: 14px; background: var(--card); border:1px solid var(--border); border-radius: 18px; overflow:hidden; box-shadow: var(--shadow-soft); }
.l04-trend-media img, .l04-trend-ph{ width:100%; height: 180px; object-fit:cover; display:block; background:#eceff3; }
.l04-trend-body{ padding: 12px 12px 12px 0; }
.l04-trend-top{ display:flex; align-items:center; justify-content:space-between; gap: 10px; margin-top: 10px; }
.l04-trend-title{ margin: 10px 0 0; font-size: 16px; line-height:1.25; }
.l04-trend-title a{ color: var(--text); text-decoration:none; }
.l04-trend-title a:hover{ text-decoration:underline; }

/* LIST grid */
.l04-pagehead{ margin: 14px 0 12px; }
.l04-page-title{ margin:0; font-size: 26px; letter-spacing:-0.02em; }
.l04-page-sub{ margin: 8px 0 0; color: var(--muted); }

.l04-grid{ display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 12px; }
.l04-card{ background: var(--card); border:1px solid var(--border); border-radius: 18px; overflow:hidden; box-shadow: var(--shadow-soft); }
.l04-card-media img, .l04-card-ph{ width:100%; height: 170px; object-fit:cover; display:block; background:#eceff3; }
.l04-card-body{ padding: 12px 12px 14px; }
.l04-card-title{ margin: 10px 0 0; font-size: 14px; font-weight: 900; line-height: 1.25; }
.l04-card-title a{ color: var(--text); text-decoration:none; }
.l04-card-title a:hover{ text-decoration:underline; }

/* Post */
.l04-post{ display:grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 22px; align-items:start; margin-top: 14px; }
.l04-post-title{ margin:0; font-size: 30px; letter-spacing:-0.02em; }
.l04-post-cover{ width:100%; height: 380px; object-fit:cover; border-radius: 18px; border:1px solid var(--border); margin-top: 14px; display:block; }
.l04-post-side{ background: var(--card); border:1px solid var(--border); border-radius: 18px; padding: 14px; box-shadow: var(--shadow-soft); height: fit-content; }
.l04-side-title{ margin: 0 0 10px; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.l04-side-list{ display:grid; gap: 12px; }
.l04-side-item{ display:grid; grid-template-columns: 86px 1fr; gap: 12px; text-decoration:none; color: var(--text); }
.l04-side-item img, .l04-side-ph{ width:86px; height: 64px; border-radius: 12px; object-fit:cover; background:#eceff3; border:1px solid rgba(0,0,0,.04); }
.l04-side-item-title{ font-weight: 900; font-size: 13px; line-height: 1.2; }

/* Footer */
.l04-footer{ padding-top: 18px; padding-bottom: 26px; color: var(--muted); }

/* Responsive */
@media (max-width: 1100px){
    .l04-hero{ grid-template-columns: 86px 1fr; }
    .l04-hero-right{ grid-column: 1 / -1; }
    .l04-trendcard{ flex-basis: 86vw; max-width: 86vw; grid-template-columns: 1fr; }
    .l04-trend-media img{ height: 200px; }
    .l04-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .l04-post{ grid-template-columns: 1fr; }
}

@media (max-width: 820px){
    .l04-promo{ display:none; }
    .l04-navrow{ display:none; }
    .l04-burger{ display:inline-flex; align-items:center; justify-content:center; }
    .l04-hero{ grid-template-columns: 1fr; }
    .l04-thumbs{ flex-direction: row; overflow-x:auto; padding-bottom: 6px; }
    .l04-thumb{ min-width: 120px; }
    .l04-grid{ grid-template-columns: 1fr; }
}
/* ===== Bunzo-style HOME overrides for L04 ===== */

.bunzo-hero{
    display:grid;
    grid-template-columns: 92px minmax(0, 1fr) 360px;
    gap: 18px;
    align-items: start;
    margin-top: 16px;
}

/* left mini vertical gallery */
.bunzo-mini-viewport{
    height: 360px;
    overflow: hidden;
    border-radius: 18px;
}
.bunzo-mini-track{
    display:flex;
    flex-direction:column;
    gap: 12px;
}
.bunzo-mini-item{
    display:block;
    border-radius: 18px;
    overflow:hidden;
    border:1px solid var(--border);
    background: var(--card);
    box-shadow: var(--shadow-soft);
}
.bunzo-mini-item img, .bunzo-mini-ph{
    width:100%;
    height:74px;
    object-fit:cover;
    display:block;
    background:#eceff3;
}

/* center big feature */
.bunzo-feature-card{
    background: var(--card);
    border:1px solid var(--border);
    border-radius: 20px;
    overflow:hidden;
    box-shadow: var(--shadow);
}
.bunzo-feature-media img, .bunzo-feature-ph{
    width:100%;
    height: 320px;
    object-fit:cover;
    display:block;
    background:#eceff3;
}
.bunzo-feature-body{ padding: 14px 16px 16px; }

.bunzo-topline{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap: 10px;
}
.bunzo-chip{
    display:inline-flex;
    align-items:center;
    font-size:11px;
    font-weight:900;
    padding:6px 10px;
    border-radius:999px;
    background: var(--primary-soft);
    color: var(--text);
}
.bunzo-by{ font-size:12px; color: var(--muted); }

.bunzo-feature-title{
    margin: 10px 0 8px;
    font-size: 22px;
    line-height: 1.2;
    letter-spacing: -0.02em;
}
.bunzo-feature-title a{ color: var(--text); text-decoration:none; }
.bunzo-feature-title a:hover{ text-decoration: underline; }

.bunzo-meta{
    display:flex;
    gap: 8px;
    align-items:center;
    flex-wrap:wrap;
    font-size:12px;
    color: var(--muted);
    margin-top: 6px;
}
.bunzo-excerpt{
    color: var(--muted);
    font-size: 13px;
    line-height: 1.5;
    margin: 10px 0 0;
}
.bunzo-excerpt.small{
    display:-webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow:hidden;
}

/* right list (no images) */
.bunzo-right{
    display:flex;
    flex-direction:column;
    gap: 14px;
}
.bunzo-right-item{
    background: var(--card);
    border:1px solid var(--border);
    border-radius: 18px;
    padding: 14px 14px 12px;
    box-shadow: var(--shadow-soft);
    position: relative;
}
.bunzo-right-title{
    margin: 10px 0 6px;
    font-size: 15px;
    line-height: 1.25;
}
.bunzo-right-title a{ color: var(--text); text-decoration:none; }
.bunzo-right-title a:hover{ text-decoration: underline; }

.bunzo-actions{
    position:absolute;
    right: 12px;
    bottom: 12px;
    display:flex;
    gap: 10px;
    color: var(--muted);
    font-size: 14px;
}

/* Trending: two-column grid of cards (NOT a horizontal slider) */
.bunzo-trending{
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid rgba(0,0,0,.05);
}
.bunzo-section-title{
    margin:0 0 12px;
    font-size: 16px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--text);
}
.bunzo-trending-grid{
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}
.bunzo-trending-col{
    display:grid;
    gap: 18px;
}
.bunzo-trendcard{
    background: var(--card);
    border:1px solid var(--border);
    border-radius: 18px;
    overflow:hidden;
    box-shadow: var(--shadow-soft);
    display:grid;
    grid-template-columns: 220px 1fr;
    gap: 14px;
    min-height: 160px;
}
.bunzo-trend-media img, .bunzo-trend-ph{
    width:100%;
    height:100%;
    min-height: 160px;
    object-fit:cover;
    display:block;
    background:#eceff3;
}
.bunzo-trend-body{
    padding: 12px 12px 12px 0;
    margin: 10px;
}
.bunzo-trend-title{
    margin: 10px 0 0;
    font-size: 15px;
    line-height: 1.25;
}
.bunzo-trend-title a{ color: var(--text); text-decoration:none; }
.bunzo-trend-title a:hover{ text-decoration: underline; }

/* responsive */
@media (max-width: 1100px){
    .bunzo-hero{ grid-template-columns: 92px 1fr; }
    .bunzo-right{ grid-column: 1 / -1; }
    .bunzo-trending-grid{ grid-template-columns: 1fr; }
    .bunzo-trendcard{ grid-template-columns: 1fr; }
    .bunzo-trend-media img{ min-height: 220px; }
}

@media (max-width: 820px){
    .bunzo-hero{ grid-template-columns: 1fr; }
    .bunzo-mini-viewport{ height: auto; overflow:auto; }
    .bunzo-mini-track{ flex-direction: row; }
    .bunzo-mini-item{ min-width: 120px; }
}
/* HERO without mini column */
.bunzo-hero--no-mini{
    grid-template-columns: minmax(0, 1fr) 360px;
}

@media (max-width: 1100px){
    .bunzo-hero--no-mini{
        grid-template-columns: 1fr;
    }
}

.l04-promo {
    background: url("./img/hero.jpg") center/cover no-repeat;
}
