/* KS-GM Review — Public styles */
.ksgm-wrap{
    --ksgm-card-bg:#1a1a1a;
    --ksgm-text:#fff;
    --ksgm-muted:#a0a0a0;
    --ksgm-border:#d4af37;
    --ksgm-star:#f5b400;
    --ksgm-accent:#4285f4;
    --ksgm-radius:16px;
    font-family:inherit;
    color:var(--ksgm-text);
    box-sizing:border-box;
    width:100%;
}
.ksgm-wrap *,.ksgm-wrap *::before,.ksgm-wrap *::after{box-sizing:border-box;}

.ksgm-header{text-align:center;margin-bottom:24px;}
.ksgm-subtitle{color:var(--ksgm-border);font-weight:600;letter-spacing:.05em;margin-bottom:6px;font-size:14px;text-transform:capitalize;}
.ksgm-title{color:var(--ksgm-text);font-size:32px;margin:0;font-weight:700;}

.ksgm-layout{display:flex;gap:24px;align-items:center;flex-wrap:wrap;}
.ksgm-summary{flex:0 0 220px;text-align:center;padding:16px;}
.ksgm-summary-label{font-weight:800;letter-spacing:.1em;font-size:20px;margin-bottom:8px;}
.ksgm-summary-stars{font-size:26px;margin-bottom:8px;letter-spacing:2px;}
.ksgm-summary-count{color:var(--ksgm-muted);font-size:14px;margin-bottom:10px;}
.ksgm-summary-google svg{display:inline-block;}

/* Cards */
.ksgm-card{
    background:var(--ksgm-card-bg);
    color:var(--ksgm-text);
    border-radius:var(--ksgm-radius);
    padding:20px;
    position:relative;
    display:flex;flex-direction:column;
    gap:12px;
    height:100%;
    border:1.5px solid var(--ksgm-border);
    box-shadow:0 4px 20px rgba(0,0,0,.15);
    min-height:260px;
}
.ksgm-card-head{display:flex;align-items:center;gap:12px;}
.ksgm-avatar{width:44px;height:44px;border-radius:50%;overflow:hidden;flex-shrink:0;background:#333;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;}
.ksgm-avatar img{width:100%;height:100%;object-fit:cover;display:block;}
.ksgm-meta{flex:1;min-width:0;}
.ksgm-name{font-weight:700;font-size:15px;color:var(--ksgm-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ksgm-time{color:var(--ksgm-muted);font-size:12px;margin-top:2px;}
.ksgm-google{flex-shrink:0;}

.ksgm-rating-row{display:flex;align-items:center;gap:8px;}
.ksgm-stars{color:#555;font-size:18px;letter-spacing:2px;}
.ksgm-star.is-filled{color:var(--ksgm-star);}
.ksgm-verified{color:var(--ksgm-accent);display:inline-flex;}

.ksgm-text{color:var(--ksgm-text);opacity:.88;font-size:14px;line-height:1.6;flex:1;}
.ksgm-card-foot{display:flex;justify-content:space-between;align-items:flex-end;color:var(--ksgm-muted);}
.ksgm-more{background:none;border:0;color:var(--ksgm-muted);font-size:13px;cursor:pointer;padding:0;text-decoration:none;}
.ksgm-more:hover{color:var(--ksgm-text);}
.ksgm-quote{font-family:Georgia,serif;font-size:44px;line-height:.6;color:var(--ksgm-border);opacity:.7;}

/* Grid */
.ksgm-grid{display:grid;gap:20px;flex:1;}
.ksgm-cols-2{grid-template-columns:repeat(2,1fr);}
.ksgm-cols-3{grid-template-columns:repeat(3,1fr);}
.ksgm-cols-4{grid-template-columns:repeat(4,1fr);}

/* Carousel */
.ksgm-carousel{position:relative;flex:1;min-width:0;max-width:100%;}
.ksgm-carousel .swiper{padding:8px 4px;overflow:hidden;}
.ksgm-carousel .swiper-slide{height:auto;box-sizing:border-box;}
.ksgm-nav{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;border:1.5px solid var(--ksgm-border);background:var(--ksgm-card-bg);color:var(--ksgm-text);font-size:22px;line-height:1;cursor:pointer;z-index:5;display:flex;align-items:center;justify-content:center;}
.ksgm-nav:hover{background:var(--ksgm-border);color:var(--ksgm-card-bg);}
.ksgm-prev{left:-14px;}
.ksgm-next{right:-14px;}

/* Scrollbar hidden on desktop, visible on mobile */
.ksgm-carousel .ksgm-scrollbar{display:none;}

.ksgm-empty{padding:40px;text-align:center;color:var(--ksgm-muted);flex:1;}

/* Mobile */
@media (max-width:768px){
    .ksgm-wrap{max-width:100%;overflow-x:hidden;}
    .ksgm-layout{flex-direction:column;gap:16px;}
    .ksgm-summary{flex:0 0 auto;width:100%;}
    .ksgm-title{font-size:24px;}
    .ksgm-cols-2,.ksgm-cols-3,.ksgm-cols-4{grid-template-columns:repeat(1,1fr);}
    .ksgm-mcols-2{grid-template-columns:repeat(2,1fr)!important;}

    .ksgm-carousel{width:100%;max-width:100%;padding:0 12px 24px;}
    .ksgm-carousel .swiper{padding:4px 0;overflow:hidden;width:100%;max-width:100%;}
    .ksgm-card{padding:16px;min-height:0;}
    .ksgm-text{font-size:13.5px;}
    .ksgm-name{font-size:14px;}

    /* Hide side arrows on mobile, show scrollbar instead */
    .ksgm-nav{display:none!important;}
    .ksgm-carousel .ksgm-scrollbar{
        display:block;
        position:absolute;
        left:25%;right:25%;bottom:6px;
        width:auto;height:3px;
        background:color-mix(in oklab, var(--ksgm-muted) 40%, transparent);
        border-radius:999px;
        z-index:5;
    }
    .ksgm-carousel .ksgm-scrollbar .swiper-scrollbar-drag{
        background:var(--ksgm-text);
        border-radius:999px;
    }
}


