/* ============================================================
   STS Speaker Showcase — Clean separated frontend card design
   ============================================================ */

/* ---------- Search ---------- */
.sts-search-wrap { margin-bottom: 24px; }
.sts-search {
    width: 100%;
    max-width: 520px;
    padding: 12px 18px;
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    font-size: 14px;
    outline: none;
    transition: border-color .2s, box-shadow .2s;
    background: #fff;
    color: #1e293b;
}
.sts-search:focus {
    border-color: #6366f1;
    box-shadow: 0 0 0 4px rgba(99,102,241,.13);
}

/* ---------- Grid ---------- */
.sts-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 20px !important;
    align-items: stretch !important;
}

/* ---------- Card ---------- */
.sts-card {
    position: relative !important;
    border-radius: 22px !important;
    overflow: hidden !important;
    cursor: pointer !important;
    background: #0f172a !important;
    height: 400px !important;
    min-height: 400px !important;
    max-height: 400px !important;
    width: 100% !important;
    display: block !important;
    transition: transform .35s cubic-bezier(.25,.8,.25,1), box-shadow .35s ease !important;
    box-shadow: 0 12px 34px rgba(15,23,42,.16) !important;
    isolation: isolate !important;
    aspect-ratio: unset !important;
}

.sts-hover-lift .sts-card:hover,
.sts-card:hover {
    transform: translateY(-7px) !important;
    box-shadow: 0 24px 60px rgba(15,23,42,.28) !important;
}
.sts-hover-zoom .sts-card:hover .sts-card-img-wrap img,
.sts-card:hover .sts-card-img-wrap img { transform: scale(1.065) !important; }
.sts-hover-glow .sts-card:hover {
    box-shadow: 0 0 0 3px rgba(99,102,241,.28), 0 24px 60px rgba(15,23,42,.28) !important;
}
.sts-hover-none .sts-card:hover { transform: none !important; }

/* ---------- Image ---------- */
.sts-card-img-wrap {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}
.sts-card-img-wrap img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    display: block !important;
    transition: transform .55s cubic-bezier(.25,.8,.25,1) !important;
    border-radius: 0 !important;
    max-width: none !important;
    max-height: none !important;
}
.sts-no-img {
    width: 100% !important;
    height: 100% !important;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 64px;
    background: linear-gradient(135deg,#1e293b,#334155);
}

/* ---------- Overlay ---------- */
.sts-overlay {
    position: absolute !important;
    inset: 0 !important;
    pointer-events: none !important;
    z-index: 2 !important;
    background: linear-gradient(
        to top,
        rgba(2,6,23,.96) 0%,
        rgba(2,6,23,.78) 30%,
        rgba(2,6,23,.30) 58%,
        rgba(2,6,23,.04) 82%
    ) !important;
}

/* ---------- Separated content panel ---------- */
.sts-content {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    padding: 16px !important;
    z-index: 3 !important;
}
.sts-info-panel {
    background: rgba(15,23,42,.58) !important;
    border: 1px solid rgba(255,255,255,.14) !important;
    border-radius: 18px !important;
    padding: 16px !important;
    backdrop-filter: blur(12px) saturate(130%) !important;
    -webkit-backdrop-filter: blur(12px) saturate(130%) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.10) !important;
}
.sts-field {
    display: block !important;
    padding: 7px 0 !important;
    border-top: 1px solid rgba(255,255,255,.12) !important;
}
.sts-field:first-child {
    padding-top: 0 !important;
    border-top: 0 !important;
}
.sts-label { display: none !important; }
.sts-name {
    margin: 0 !important;
    font-size: 18px !important;
    font-weight: 850 !important;
    line-height: 1.12 !important;
    color: #ffffff !important;
    word-break: break-word !important;
    display: block !important;
    text-shadow: 0 2px 10px rgba(0,0,0,.25) !important;
}
.sts-desig,
.sts-company {
    display: block !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    color: rgba(255,255,255,.86) !important;
    line-height: 1.35 !important;
    margin: 0 !important;
    word-break: break-word !important;
}
.sts-company {
    color: rgba(255,255,255,.68) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
}
.sts-details-pill { display: none !important; }

/* ---------- View Profile hint badge ---------- */
.sts-hint {
    position: absolute !important;
    top: 12px !important;
    right: 12px !important;
    z-index: 4 !important;
    opacity: 0;
    transform: translateY(-5px);
    transition: all .3s ease;
}
.sts-hint span {
    display: block;
    background: rgba(15,23,42,.58);
    backdrop-filter: blur(8px);
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .8px;
    text-transform: uppercase;
    padding: 6px 12px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.18);
}
.sts-card:hover .sts-hint { opacity: 0 !important; transform: none !important; }

/* ---------- Hidden cards ---------- */
.sts-card.sts-hidden { display: none !important; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
    .sts-grid { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 768px) {
    .sts-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 14px !important; }
    .sts-card { height: 340px !important; min-height: 340px !important; max-height: 340px !important; }
    .sts-content { padding: 12px !important; }
    .sts-info-panel { padding: 12px !important; border-radius: 16px !important; }
    .sts-name { font-size: 18px !important; }
    .sts-desig { font-size: 15px !important; }
    .sts-company { font-size: 13px !important; }
}
@media (max-width: 480px) {
    .sts-grid { grid-template-columns: repeat(1, 1fr) !important; gap: 14px !important; }
    .sts-card { height: 360px !important; min-height: 360px !important; max-height: 360px !important; }
}

/* ============================================================
   POPUP MODAL
   ============================================================ */
.sts-modal {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity .35s ease, visibility .35s ease;
}
.sts-modal.is-open { opacity: 1; visibility: visible; }

.sts-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(2,6,23,.82);
    backdrop-filter: blur(8px);
}

.sts-modal-inner {
    position: relative;
    background: #0f172a;
    border-radius: 22px;
    width: 92%;
    max-width: 760px;
    max-height: 90vh;
    overflow: hidden;
    box-shadow: 0 40px 100px rgba(0,0,0,.65);
    transform: scale(.92) translateY(24px);
    transition: transform .38s cubic-bezier(.25,.8,.25,1);
    display: flex;
    flex-direction: column;
}
.sts-modal.is-open .sts-modal-inner { transform: scale(1) translateY(0); }

.sts-modal-close {
    position: absolute;
    top: 14px; right: 14px;
    width: 36px; height: 36px;
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 50%;
    color: #fff;
    font-size: 14px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    transition: background .2s, transform .2s;
}
.sts-modal-close:hover { background: rgba(255,255,255,.22); transform: rotate(90deg); }

.sts-modal-body { display: flex; overflow: auto; flex: 1; }

.sts-modal-img-wrap {
    width: 42%;
    flex-shrink: 0;
    position: relative;
    overflow: hidden;
}
.sts-modal-img-wrap::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, transparent 60%, #0f172a);
    pointer-events: none;
}
#sts-modal-img {
    width: 100%;
    height: 100%;
    min-height: 340px;
    object-fit: cover;
    object-position: center top;
    display: block;
}

.sts-modal-info {
    flex: 1;
    padding: 42px 34px 34px 26px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.sts-modal-badge {
    display: inline-block;
    background: rgba(255,255,255,.07);
    color: rgba(255,255,255,.5);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 4px 12px;
    border-radius: 50px;
    border: 1px solid rgba(255,255,255,.12);
    margin-bottom: 14px;
}
#sts-modal-name {
    color: #fff;
    font-size: 26px;
    font-weight: 800;
    margin: 0 0 6px;
    line-height: 1.15;
}
.sts-modal-desig   { color: rgba(255,255,255,.7);  font-size:14px; font-weight:500; margin:0 0 3px; }
.sts-modal-company { color: rgba(255,255,255,.42); font-size:13px; margin:0; }
.sts-modal-divider { height:1px; background:rgba(255,255,255,.09); margin:20px 0; }
.sts-modal-desc    { color:rgba(255,255,255,.65); font-size:13px; line-height:1.8; margin:0 0 24px; }

.sts-modal-social { display:flex; gap:10px; flex-wrap:wrap; }
.sts-social-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none !important;
    transition: transform .2s, opacity .2s;
}
.sts-social-btn:hover { transform: translateY(-2px); opacity: .88; }
.sts-social-linkedin { background:#0077b5; color:#fff !important; }
.sts-social-twitter  { background:#111; color:#fff !important; border:1px solid rgba(255,255,255,.12); }

/* Spinner */
.sts-spinner {
    width:32px; height:32px;
    border: 3px solid rgba(255,255,255,.12);
    border-top-color: rgba(255,255,255,.7);
    border-radius:50%;
    animation: sts-spin .7s linear infinite;
    display:none;
    margin: auto;
}
.sts-modal-loading .sts-spinner  { display:block; }
.sts-modal-loading .sts-modal-main { display:none; }
.sts-modal-loading .sts-modal-info { align-items:center; justify-content:center; }
@keyframes sts-spin { to { transform: rotate(360deg); } }

/* Mobile modal */
@media (max-width: 620px) {
    .sts-modal-body     { flex-direction:column; }
    .sts-modal-img-wrap { width:100%; height:220px; flex-shrink:0; }
    .sts-modal-img-wrap::after { background:linear-gradient(to top,#0f172a 0%,transparent 60%); }
    #sts-modal-img      { min-height:220px; height:220px; }
    .sts-modal-info     { padding:22px 20px 26px; }
    #sts-modal-name     { font-size:20px; }
}

.elementor-editor-active .sts-card { cursor:default; }


/* STS fix: clean modern separated card without text labels or hover profile badge */
.sts-info-panel {
    background: linear-gradient(180deg, rgba(15,23,42,.10), rgba(15,23,42,.76)) !important;
    border: 1px solid rgba(255,255,255,.16) !important;
}
.sts-field { border-top: 1px solid rgba(255,255,255,.11) !important; }
.sts-field-name { padding-bottom: 8px !important; }
.sts-field-role, .sts-field-company { padding: 7px 0 !important; }
.sts-name, .sts-desig, .sts-company { word-break: normal !important; overflow-wrap: anywhere !important; }
.sts-hint { display: none !important; }


/* === STS v3.0.6 HARD FRONTEND CARD FIX === */
.sts-card .sts-info-panel,
.elementor-widget-sts_speaker_showcase .sts-card .sts-info-panel {
    padding: 14px 15px !important;
    background: rgba(8, 13, 30, .72) !important;
    border-radius: 16px !important;
}
.sts-card .sts-field,
.elementor-widget-sts_speaker_showcase .sts-card .sts-field {
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}
.sts-card .sts-field + .sts-field,
.elementor-widget-sts_speaker_showcase .sts-card .sts-field + .sts-field {
    margin-top: 4px !important;
}
.sts-card .sts-name,
.elementor-widget-sts_speaker_showcase .sts-card .sts-name {
    font-size: 18px !important;
    line-height: 1.15 !important;
    font-weight: 800 !important;
    margin: 0 !important;
    color: #fff !important;
}
.sts-card .sts-desig,
.elementor-widget-sts_speaker_showcase .sts-card .sts-desig {
    font-size: 15px !important;
    line-height: 1.25 !important;
    font-weight: 600 !important;
    margin: 0 !important;
    color: rgba(255,255,255,.88) !important;
}
.sts-card .sts-company,
.elementor-widget-sts_speaker_showcase .sts-card .sts-company {
    font-size: 13px !important;
    line-height: 1.25 !important;
    font-weight: 500 !important;
    margin: 0 !important;
    color: rgba(255,255,255,.70) !important;
}
.sts-card .sts-details-pill,
.sts-card .sts-hint,
.sts-card a[class*="button"],
.sts-card button,
.sts-card .elementor-button,
.sts-card [class*="view"],
.sts-card [class*="details"],
.elementor-widget-sts_speaker_showcase .sts-card .sts-details-pill,
.elementor-widget-sts_speaker_showcase .sts-card .sts-hint {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
}


/* v3.0.7 HARD FIX: force every text item into its own line */
.sts-card .sts-info-panel,
.sts-card .sts-field,
.sts-card .sts-name,
.sts-card .sts-desig,
.sts-card .sts-company {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    clear: both !important;
    float: none !important;
    white-space: normal !important;
}
.sts-card .sts-field {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}
.sts-card .sts-name {
    font-size: 18px !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
    margin: 0 0 7px 0 !important;
}
.sts-card .sts-desig {
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1.25 !important;
    margin: 0 0 6px 0 !important;
}
.sts-card .sts-company {
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.25 !important;
    margin: 0 !important;
}
.sts-card .sts-details-pill,
.sts-card .sts-hint,
.sts-card .sts-info-panel a,
.sts-card .sts-info-panel button {
    display: none !important;
    visibility: hidden !important;
}

/* === STS v3.0.8 POPUP CLEAN SPLIT FIX === */
#sts-modal-name,
#sts-modal-desig,
#sts-modal-company {
    display: block !important;
    width: 100% !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
}
#sts-modal-name {
    font-size: 26px !important;
    line-height: 1.15 !important;
    margin: 16px 0 8px !important;
}
#sts-modal-desig {
    font-size: 16px !important;
    line-height: 1.4 !important;
    margin: 0 0 6px !important;
    font-weight: 600 !important;
}
#sts-modal-company {
    font-size: 14px !important;
    line-height: 1.4 !important;
    margin: 0 !important;
    opacity: .82 !important;
}
