/* roster-cards.css - EXTRACTED from location.php inline styles (18 Jul 2026).
   Single source for pages outside location.php/strippers.php that render
   ks_stripper_card_html cards (showroom.php). If card styling changes in
   location.php, re-extract. */

/* fix-hover.css inlined (speed pass 11 Jul 2026) - was a render-blocking request for 1.9KB */
/* Override styles for the platinum section to match index.php exactly */

/* Cancel the bouncing effect on hover */
#vip .profile-card:hover {
    transform: none !important;
}
/* Prevent the image from scaling up on hover */
#vip .profile-card:hover .profile-image {
    transform: none !important;
}
/* Remove the rounded backgrounds from type and nationality labels */
#vip .escort-type,
#vip .nationality {
    background: transparent !important;
    border-radius: 0 !important;
    padding: 0 !important;
}
/* Fix the touring badge to match index.php exactly */
#vip .touring-badge {
    position: absolute !important;
    bottom: 7px !important;
    right: 7px !important;
    left: auto !important; /* Override any left positioning */
    top: auto !important; /* Override any top positioning */
    transform: none !important; /* Remove any transform */
    padding: 2px 8px !important;
    border-radius: 4px !important;
    color: #FFFFFF !important;
    font-size: 12px !important;
    font-weight: bold !important;
    z-index: 2 !important;
}
#vip .touring-badge.touring-now {
    background-color: green !important;
}
#vip .touring-badge.touring-soon {
    background-color: orange !important;
}
#vip .bottom-overlay {
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 37px !important;
    background: rgba(75, 0, 130, 0.6) !important;
    display: flex !important;
    align-items: center !important;
    padding: 8px 10px !important;
    z-index: 1 !important;
}
/* Grid for stripper profiles - smaller cards, 6 columns */
.strippers-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 15px;
    margin-top: 20px;
    padding: 5px;
}
@media (max-width: 600px){
.strippers-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 10px !important;
        padding: 0 !important;
        margin-top: 10px !important;
        max-width: 1200px !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
/* Profile card mobile adjustments - match vip.css behavior */
    .strippers-grid .profile-card {
        border-radius: 7px;
        background-color: rgba(38, 38, 38, 0.2);
        max-width: none !important;
        width: 100% !important;
    }
.strippers-grid .profile-card .image-container {
        height: auto;
    }
.strippers-grid .profile-card .profile-image {
        aspect-ratio: 5 / 7;
        object-fit: cover;
    }
.strippers-grid .profile-card .profile-info {
        padding: 5px;
    }
.strippers-grid .profile-card .profile-name {
        font-size: 14px;
    }
.strippers-grid .profile-card .profile-details {
        font-size: 12px;
    }
}
@media (min-width: 601px) and (max-width: 900px){
.strippers-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 12px;
    }
}
@media (min-width: 901px) and (max-width: 1200px){
.strippers-grid {
        grid-template-columns: repeat(5, 1fr);
        gap: 12px;
    }
}
@media (min-width: 1201px){
.strippers-grid {
        grid-template-columns: repeat(6, 1fr);
        gap: 15px;
    }
}
.enhanced-card-image-container {
    position: relative;
    padding-bottom: 133.33%; /* 3:4 aspect ratio */
    overflow: hidden;
}
/* Available now pulsing animation styling */
.available-now-icon i {
    color: #28a745;
    margin-right: 5px;
}
/* Enhanced styling for the premium carousel */
.premium-carousel .profile-card {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 5px 15px rgba(0,0,0,0.2);
    transition: all 0.3s ease;
    background: #1a1a1a;
    margin: 5px;
}
.premium-carousel .profile-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(0,0,0,0.3);
}
.premium-carousel .image-container {
    position: relative;
    overflow: hidden;
    height: 300px;
}
.premium-carousel .profile-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}
.premium-carousel .profile-card:hover .profile-image {
    transform: scale(1.05);
}
/* Platinum badge */
.premium-carousel .profile-card::before {
    content: "PLATINUM";
    position: absolute;
    top: 10px;
    right: -30px;
    background: #ffc300;
    color: #000;
    font-size: 10px;
    font-weight: bold;
    padding: 5px 30px;
    transform: rotate(45deg);
    z-index: 10;
    box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
/* Global profile card styles (for both carousel and grid) - Matching VIP styling */
.profile-card {
    position: relative;
    width: 100%;
    border-radius: 7px;
    background-color: rgba(38, 38, 38, 0.2);
    overflow: hidden;
    box-sizing: border-box;
    transition: transform 0.3s ease, box-shadow 0.3s ease, outline 0.3s ease;
    margin: 0 auto;
}
.profile-card:hover {
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3);
}
.profile-card .image-container {
    position: relative;
}
.profile-card .profile-image {
    width: 100%;
    height: auto;
    aspect-ratio: 5 / 7;
    object-fit: cover;
    object-position: top;
}
.profile-card .profile-info {
    padding: 5px;
}
.profile-card .name-and-availability {
    display: flex;
    align-items: center;
}
.profile-card .available-now-icon {
    color: #00ff00;
    margin-right: 5px;
    animation: blink 2s infinite;
}
.profile-card .available-now-icon i {
    font-size: 14px;
}
.profile-card .profile-name {
    font-size: 14px;
    color: #FFFFFF;
    font-weight: 700;
    flex: 1;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.profile-card .profile-details {
    display: flex;
    justify-content: space-between;
    margin-top: 5px;
}
.profile-card .profile-city,
.profile-card .profile-age {
    font-size: 12px;
    color: #ffc300;
    margin-top: -7px;
}
.profile-card .profile-age {
    padding-right: 0;
}
@media (max-width: 768px){
.profile-card .profile-city.long-city,
    .profile-card .profile-city.long-city + .profile-age {
        font-size: 10px;
    }
}
.profile-card .heart-icon {
    position: absolute;
    top: 0px;
    right: 8px;
    z-index: 3;
    font-size: 24px;
    color: #FFFFFF;
    cursor: pointer;
    transition: color 0.3s;
}
.profile-card .heart-icon:hover i {
    color: red;
}
.profile-card .heart-icon.favorited i {
    color: rgb(254, 67, 101);
}
.profile-card .heart-icon.favorited i:before {
    content: "\f004"; /* fa-heart solid */
}
/* Overlays (Top & Bottom) */
.profile-card .top-overlay,
.profile-card .bottom-overlay {
    position: absolute;
    left: 0;
    width: 100%;
    color: #fff;
    padding: 8px 10px;
    display: flex;
    align-items: center;
    opacity: 0;
    transition: opacity 0.3s;
    z-index: 1;
}
.profile-card .top-overlay {
    top: 0;
    height: 35px;
    background: rgba(0, 0, 0, 0.6);
}
.profile-card .bottom-overlay {
    bottom: 0;
    height: 37px;
    background: rgba(75, 0, 130, 0.6);
}
.profile-card:hover .top-overlay,
.profile-card:hover .bottom-overlay {
    opacity: 1;
}
.profile-card .escort-type,
.profile-card .nationality {
    font-size: 14px;
    font-weight: bold;
    text-align: left;
}
.profile-card .touring-badge {
    position: absolute;
    bottom: 7px;
    right: 7px;
    padding: 2px 8px;
    border-radius: 4px;
    color: #FFFFFF;
    font-size: 12px;
    font-weight: bold;
    z-index: 2;
}
.profile-card .touring-badge.touring-now {
    background-color: green;
}
.profile-card .touring-badge.touring-soon {
    background-color: orange;
}
/* Responsive card sizing for regular stripper cards - smaller than platinum */
.strippers-grid .profile-card {
    max-width: 140px;
}
@media (min-width: 401px) and (max-width: 600px){
.strippers-grid .profile-card {
        max-width: 155px;
    }
}
@media (min-width: 601px) and (max-width: 1200px){
.strippers-grid .profile-card {
        max-width: 180px;
    }
}
@media (min-width: 1201px){
.strippers-grid .profile-card {
        max-width: 200px;
    }
}
.premium-carousel .profile-info {
    padding: 15px;
    background: #1a1a1a;
}
.premium-carousel .name-and-availability {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 5px;
}
.premium-carousel .available-now-icon {
    display: flex;
    align-items: center;
}
.premium-carousel .available-now-icon i {
    color: #28a745;
    font-size: 10px;
    animation: pulse 1.5s infinite;
}
.premium-carousel .profile-name {
    color: #fff;
    font-size: 18px;
    font-weight: 600;
}
.premium-carousel .profile-details {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    font-size: 13px;
    color: rgba(255,255,255,0.7);
}
/* Grid Fade Transitions */
.strippers-grid {
    transition: opacity 0.3s ease;
}
.strippers-grid.loading {
    opacity: 0.3;
    pointer-events: none;
}

.badge-available {
    background: rgba(40, 167, 69, 0.8);
    color: white;
}
@keyframes pulse {
    0%, 100% {
        opacity: 1;
        transform: scale(1);
    }
    50% {
        opacity: 0.7;
        transform: scale(1.2);
    }
}


/* --- psm 2col + cards (extracted from location.php, 18 Jul 2026) --- */
/* Benefit cards - homepage-style visual sections instead of paragraph walls */
    .psm-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:18px 0 8px}
.psm-cards .psm-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:18px}
.psm-cards .psm-card h3{margin:0 0 8px;font-size:16.5px;color:#ffc300}
.psm-cards .psm-card p{margin:0;font-size:14.5px;line-height:1.6;color:rgba(255,255,255,.85)}
/* ===== V2 REDESIGN (Auckland pilot, 12 Jul) - SCOPED to .psm-v2 so every other city is untouched.
       Fixes the "narrow editorial middle": unifies width to the roster (1280), turns lonely text blocks
       into two-column layouts so the right side is never empty, matches homepage H2 typography. ===== */
    .psm-v2 > h2, .psm-v2 .psm-intro-2col h2{font-family:'Poppins',sans-serif;font-size:28px}
.psm-v2 .psm-intro-2col h2{color:#ffc300}
.psm-intro-2col{display:grid;grid-template-columns:1fr 1.15fr;gap:36px;align-items:start;margin:8px 0 6px}
.psm-intro-2col .psm-intro-copy h2{margin:0 0 12px}
.psm-intro-2col .psm-intro-copy p{margin:0 0 16px}
.psm-intro-2col .psm-intro-copy p:last-child{margin-bottom:0}
.psm-intro-2col .psm-cards{margin:0;grid-template-columns:1fr 1fr}
.psm-v2 .psm-cards.two{grid-template-columns:1fr 1fr}

/* --- filter pills (extracted from strippers.php) --- */
/* Filter Pill Styles */
.filter-pill {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #d0d0d0;
    padding: 10px 18px;
    border-radius: 25px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    transition: all 0.2s ease;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.filter-pill:hover {
    background: rgba(254, 67, 101, 0.15);
    border-color: rgba(254, 67, 101, 0.4);
    color: rgb(254, 67, 101);
}
.filter-pill.active {
    background: rgba(254, 67, 101, 0.2);
    border-color: rgb(254, 67, 101);
    color: rgb(254, 67, 101);
}
.filter-pill .count {
    opacity: 0.7;
    font-size: 12px;
}

/* --- reviews component (extracted from location.php, 18 Jul 2026) --- */
/* Real review quotes - verbatim from performer_reviews, the anti-AI-slop proof no competitor has */
    .psm-reviews{display:grid;grid-template-columns:1fr;gap:12px;margin:18px 0 8px}
    @media(min-width:820px){.psm-reviews{grid-template-columns:1fr 1fr;gap:14px}}
/* same card anatomy as the dancer-profile reviews (consistency, Shaun 14 Jul) */
    .psm-reviews .psm-review{display:flex;background:rgba(255,255,255,.03);border-radius:8px;padding:16px 20px}
.psm-review .psm-rv-bar{width:4px;background:#fbbc04;flex-shrink:0;margin-right:15px;border-radius:2px}
.psm-review .psm-rv-body{flex:1;min-width:0}
.psm-review .psm-rv-title{font-size:16px;font-weight:600;color:#fff;margin-bottom:4px}
.psm-review .psm-rv-meta{font-size:12px;color:#888;margin-bottom:6px}
.psm-review p.psm-rv-clamp{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.psm-rv-more{display:inline-block;margin-top:6px;color:#fbbc04;font-size:13px;font-weight:600;text-decoration:none}
.psm-review .stars{color:#fbbc04;font-size:13px;letter-spacing:1px;margin-bottom:6px}
.psm-review p{margin:0;font-size:13.5px;line-height:1.55;color:#bbb}
.psm-review-photos{display:flex;gap:7px;flex-wrap:wrap;margin:11px 0 3px}
.psm-review-photos img{width:66px;height:66px;object-fit:cover;border-radius:8px;border:1px solid rgba(255,255,255,.15);cursor:pointer;transition:transform .15s}
.psm-review-photos img:hover{transform:scale(1.05);border-color:#ffc300}
.psm-reviews .psm-review .stars{color:#ffc300;font-size:14px;letter-spacing:2px;margin-bottom:8px}
.psm-reviews .psm-review p{margin:0 0 10px;font-size:15px;line-height:1.65;color:rgba(255,255,255,.9);font-style:italic}
.psm-reviews .psm-review span{font-size:13px;color:#999}
