/* ============================================================
   Business profile page (agency + club single template)
   ============================================================ */

/* ── Page wrapper ─────────────────────────────────────────────── */

.r33-biz-page {
    background : #fff;
    color      : #1a1a1a;
    font-family: Inter, system-ui, -apple-system, sans-serif;
    min-height : 100vh;
    width      : 100vw;
    max-width  : 100vw;
    margin-left: calc(-50vw + 50%);
    position   : relative;
}

/* ── Shared inner container ───────────────────────────────────── */

.r33-bph-inner {
    max-width : 1160px;
    margin    : 0 auto;
    padding   : 0;
}

/* ── Cover ────────────────────────────────────────────────────── */

.r33-bph-cover {
    height             : 400px;
    background-color   : #e0dbd2;
    background-size    : cover;
    background-position: center;
    position           : relative;
}

.r33-bph-cover__overlay {
    position  : absolute;
    inset     : 0;
    background: linear-gradient(to bottom, transparent 40%, rgba(0,0,0,.3) 100%);
}

/* ── Body (white card below cover) ───────────────────────────── */

.r33-bph-body {
    background   : #fdf6f7 !important;
    border-bottom: 1px solid #e8e8e8;
    box-shadow   : 0 2px 12px rgba(0,0,0,.05);
}

/* ── 3-column layout ──────────────────────────────────────────── */

.r33-bph-layout {
    display              : grid;
    grid-template-columns: repeat(4, 1fr);
    align-items          : stretch;
    max-width            : 1160px;
    margin               : 0 auto;
}

/* ── Shared column base ───────────────────────────────────────── */

.r33-bph-col {
    padding: 28px 28px 32px;
}

/* ── Col 1: Logo + description ────────────────────────────────── */

.r33-bph-col--left {
    display        : flex;
    flex-direction : column;
    gap            : 16px;
    justify-content: flex-start;
    padding-top    : 0;   /* logo margin-top:-80px handles cover overlap */
}

/* ── Logo ─────────────────────────────────────────────────────── */

.r33-bph-logo {
    width          : 160px;
    height         : 160px;
    border-radius  : 12px;
    overflow       : hidden;
    border         : 4px solid #fff;
    background     : #f3efe8;
    flex-shrink    : 0;
    margin-top     : -80px;
    display        : flex;
    align-items    : center;
    justify-content: center;
    box-shadow     : 0 4px 16px rgba(0,0,0,.14);
    position       : relative;
    z-index        : 1;
}

.r33-bph-hero--no-cover .r33-bph-logo {
    margin-top: 0;
}

.r33-bph-hero--no-cover .r33-bph-col--left {
    padding-top: 28px;
}

.r33-bph-logo img {
    width     : 100%;
    height    : 100%;
    object-fit: cover;
    display   : block;
}

.r33-bph-logo__initials {
    font-size  : 3.2rem;
    font-weight: 700;
    color      : #c9a84c;
    line-height: 1;
}

/* ── Description under logo ───────────────────────────────────── */

.r33-bph-description {
    font-size  : 0.82rem;
    color      : #666;
    line-height: 1.65;
    font-weight: 400;
}

.r33-bph-description p { margin: 0 0 0.6em; }
.r33-bph-description p:last-child { margin-bottom: 0; }

/* ── Col 2: Identity ──────────────────────────────────────────── */

.r33-bph-col--middle {
    border-left    : 1px solid #f0f0f0;
    display        : flex;
    flex-direction : column;
    gap            : 14px;
    min-width      : 0;
    justify-content: space-between;
}

/* Meta list (city, country, last seen) */
.r33-bph-meta-list {
    display       : flex;
    flex-direction: column;
    gap           : 8px;
    margin        : 0;
    padding-top   : 12px;
    border-top    : 1px solid #f0f0f0;
}

.r33-bph-meta-row {
    display    : flex;
    align-items: center;
    flex-wrap  : nowrap;
    gap        : 10px;
}

.r33-bph-meta-label {
    display       : flex;
    align-items   : center;
    gap           : 4px;
    font-size     : 0.72rem;
    font-weight   : 600;
    color         : #999;
    white-space   : nowrap;
    min-width     : 56px;
    flex-shrink   : 0;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.r33-bph-meta-label svg { color: #bbb; flex-shrink: 0; }

.r33-bph-meta-value {
    font-size  : 0.85rem;
    color      : #222;
    line-height: 1.4;
    display    : flex;
    align-items: center;
    gap        : 6px;
    flex-wrap  : nowrap;
    min-width  : 0;
    overflow   : hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

/* City row — stacked when covered cities are present */
.r33-bph-meta-row--with-sub {
    align-items: flex-start;
}

.r33-bph-meta-row--with-sub .r33-bph-meta-label {
    padding-top: 2px;
}

.r33-bph-meta-row--with-sub .r33-bph-meta-value {
    flex-direction: column;
    align-items   : flex-start;
    gap           : 2px;
    white-space   : normal;
    overflow      : visible;
}

/* Action buttons (message, favourites, review) */
.r33-bph-actions {
    display       : flex;
    flex-direction: column;
    gap           : 7px;
    padding-top   : 14px;
    border-top    : 1px solid #f0f0f0;
}

.r33-bph-action {
    display        : inline-flex;
    align-items    : center;
    align-self     : flex-start;
    gap            : 8px;
    padding        : 7px 14px;
    border-radius  : 99px;
    font-size      : 0.80rem;
    font-weight    : 500;
    cursor         : pointer;
    transition     : background .15s, border-color .15s, color .15s;
    text-decoration: none;
    border         : 1px solid #e0e0e0;
    background     : #f4f4f4;
    color          : #555;
    font-family    : inherit;
    line-height    : 1;
    white-space    : nowrap;
}

.r33-bph-action:hover { background: #ebebeb; border-color: #ccc; text-decoration: none; color: #333; }

.r33-bph-action--directions {
    background  : #dcfce7;
    border-color: #86efac;
    color       : #15803d;
}

.r33-bph-action--directions:hover {
    background: #bbf7d0;
    color     : #166534;
}

/* ── Col 3: Contact channels ──────────────────────────────────── */

.r33-bph-col--contact {
    border-left    : 1px solid #f0f0f0;
    display        : flex;
    flex-direction : column;
    gap            : 14px;
    min-width      : 0;
    justify-content: space-between;
}

.r33-bph-channels {
    display       : flex;
    flex-direction: column;
}

.r33-bph-channel {
    display        : flex;
    align-items    : center;
    gap            : 10px;
    padding        : 9px 0;
    border-bottom  : 1px solid #f5f5f5;
    text-decoration: none;
    color          : inherit;
    transition     : color .12s;
}

.r33-bph-channel:last-child { border-bottom: none; }

a.r33-bph-channel:hover { text-decoration: none; }
a.r33-bph-channel:hover .r33-bph-channel__value { color: #111; }

.r33-bph-channel > svg {
    color      : #ccc;
    flex-shrink: 0;
}

.r33-bph-channel--telegram > svg { color: #229ed9; }
.r33-bph-channel--whatsapp > svg { color: #25d366; }
.r33-bph-channel--phone    > svg { color: #888; }

.r33-bph-channel__text {
    display       : flex;
    flex-direction: column;
    gap           : 2px;
    min-width     : 0;
}

.r33-bph-channel__label {
    font-size     : 0.68rem;
    font-weight   : 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color         : #bbb;
    line-height   : 1;
}

.r33-bph-channel__value {
    font-size    : 0.84rem;
    color        : #333;
    line-height  : 1.3;
    overflow     : hidden;
    text-overflow: ellipsis;
    white-space  : nowrap;
    transition   : color .12s;
}

.r33-bph-name-group {
    display       : flex;
    flex-direction: column;
    gap           : 7px;
}

.r33-bph-name {
    font-size  : 1.65rem;
    font-weight: 700;
    color      : #111;
    margin     : 0;
    line-height: 1.2;
}

.r33-bph-tagline {
    font-size  : 0.85rem;
    color      : #777;
    margin     : 0;
    line-height: 1.5;
}

/* Stat badges */
.r33-bph-badges {
    display    : flex;
    flex-wrap  : wrap;
    gap        : 6px;
    align-items: center;
}

.r33-bph-badge {
    display      : inline-flex;
    align-items  : center;
    gap          : 4px;
    padding      : 3px 9px;
    background   : #f2f2f2;
    border-radius: 99px;
    font-size    : 0.73rem;
    font-weight  : 500;
    color        : #888;
    white-space  : nowrap;
}

/* Model count — matches INDEPENDENT card badge */
.r33-bph-badge--models {
    background : rgb(188, 90, 90);
    color      : #fff;
    font-weight: 600;
}

.r33-bph-badge--verified {
    background : #dcfce7;
    color      : #15803d;
    font-weight: 600;
}

.r33-bph-meta-city {
    font-weight: 500;
}

.r33-bph-covered {
    font-size  : 0.72rem;
    color      : #aaa;
    font-style : italic;
    line-height: 1.3;
}

/* Booking rules */
.r33-bph-rules {
    display  : flex;
    flex-wrap: wrap;
    gap      : 6px;
}

.r33-bph-rule {
    font-size    : 0.71rem;
    color        : #888;
    padding      : 2px 9px;
    background   : #f2f2f2;
    border-radius: 99px;
}

/* Groups title + content in cols 3/4 so space-between doesn't split them */
.r33-bph-col-group {
    display       : flex;
    flex-direction: column;
}

/* ── Col 4: Opening hours ─────────────────────────────────────── */

.r33-bph-col--right {
    border-left    : 1px solid #f0f0f0;
    display        : flex;
    flex-direction : column;
    gap            : 14px;
    justify-content: space-between;
}

.r33-bph-col-title {
    font-size     : 1.01rem;
    font-weight   : 700;
    color         : #aaa;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin        : 0 0 20px;
}

.r33-bph-schedule {
    display       : flex;
    flex-direction: column;
    gap           : 0;
}

.r33-bph-schedule-row {
    display        : flex;
    justify-content: space-between;
    align-items    : center;
    padding        : 7px 0;
    border-bottom  : 1px solid #f5f5f5;
    gap            : 8px;
}

.r33-bph-schedule-row:last-child { border-bottom: none; }

.r33-bph-schedule-row.is-today .r33-bph-day,
.r33-bph-schedule-row.is-today .r33-bph-time {
    font-weight: 600;
    color      : #111;
}

.r33-bph-day {
    font-size : 0.8rem;
    color     : #555;
    flex-shrink: 0;
}

.r33-bph-time {
    font-size  : 0.8rem;
    color      : #555;
    display    : flex;
    align-items: center;
    gap        : 6px;
    text-align : right;
}

.r33-bph-sched-closed {
    color    : #bbb;
    font-size: 0.75rem;
}

.r33-bph-open-now {
    display      : inline-block;
    font-size    : 0.65rem;
    font-weight  : 700;
    color        : #16a34a;
    background   : #dcfce7;
    padding      : 1px 6px;
    border-radius: 99px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.r33-bph-live-tonight {
    display      : inline-block;
    font-size    : 0.65rem;
    font-weight  : 700;
    color        : #9333ea;
    background   : #f3e8ff;
    padding      : 1px 6px;
    border-radius: 99px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* ── Rating badge ─────────────────────────────────────────────── */

.r33-bph-badge--rating {
    background     : rgba(201,168,76,.12);
    color          : #a07820;
    text-decoration: none;
    transition     : background .15s;
    font-weight    : 600;
}

.r33-bph-badge--rating:hover {
    background: rgba(201,168,76,.22);
    color     : #7a5c10;
}

.r33-bph-badge--rating svg { color: #c9a84c; }

/* ── GD Favourite button ───────────────────────────────────────── */

.r33-bph-fav-wrap {
    display: block;
}

.r33-bph-fav-wrap .geodir-addtofav {
    display: block;
}

.r33-bph-fav-wrap .geodir-act-fav {
    display        : inline-flex !important;
    align-items    : center !important;
    gap            : 7px !important;
    padding        : 7px 14px !important;
    border-radius  : 99px !important;
    font-size      : 0.80rem !important;
    font-weight    : 500 !important;
    cursor         : pointer !important;
    text-decoration: none !important;
    border         : 1px solid #e0e0e0 !important;
    background     : #f4f4f4 !important;
    color          : #555 !important;
    font-family    : inherit !important;
    line-height    : 1 !important;
    white-space    : nowrap !important;
    transition     : background .15s, border-color .15s !important;
    box-shadow     : none !important;
}

.r33-bph-fav-wrap .geodir-act-fav:hover {
    background  : #ebebeb !important;
    border-color: #ccc !important;
    color       : #333 !important;
}

/* Active/saved state — subtle gold tint */
.r33-bph-fav-wrap .geodir-removetofav-icon {
    background  : rgba(201,168,76,.1) !important;
    border-color: rgba(201,168,76,.35) !important;
    color       : #a07820 !important;
}

.r33-bph-fav-wrap .geodir-fav-text { font-size: 0.80rem; }

/* ── Reviews section ──────────────────────────────────────────── */

.r33-biz-reviews {
    background   : #fff;
    border-top   : 1px solid #ebebeb;
    padding      : 40px 0 60px;
}

.r33-biz-reviews .r33-bph-inner {
    max-width: 800px;
}

/* ── Filter bar ───────────────────────────────────────────────── */

.r33-bpf-wrap {
    background   : #fff;
    border-bottom: 1px solid #ebebeb;
    padding      : 11px 0;
    position     : sticky;
    top          : 0;
    z-index      : 10;
    box-shadow   : 0 2px 6px rgba(0,0,0,.04);
}

.r33-bpf-bar {
    display    : flex;
    gap        : 8px;
    align-items: center;
}

.r33-bpf-btn {
    display      : inline-flex;
    align-items  : center;
    gap          : 7px;
    padding      : 6px 14px;
    background   : #f4f4f4;
    border       : 1px solid #e0e0e0;
    border-radius: 99px;
    color        : #555;
    font-size    : 0.81rem;
    font-weight  : 500;
    cursor       : pointer;
    transition   : background .15s, border-color .15s, color .15s;
    white-space  : nowrap;
}

.r33-bpf-btn:hover { background: #ebebeb; border-color: #ccc; color: #111; }

.r33-bpf-btn.is-active {
    background  : rgba(201,168,76,.12);
    border-color: rgba(201,168,76,.50);
    color       : #a07820;
    font-weight : 600;
}

.r33-bpf-count {
    display        : inline-flex;
    align-items    : center;
    justify-content: center;
    min-width      : 18px;
    padding        : 1px 5px;
    background     : rgba(0,0,0,.08);
    border-radius  : 99px;
    font-size      : 0.68rem;
    font-weight    : 700;
    line-height    : 1.4;
}

.r33-bpf-btn.is-active .r33-bpf-count { background: rgba(201,168,76,.25); }

/* ── Grid wrapper ─────────────────────────────────────────────── */

.r33-bpg-wrap {
    padding   : 16px 0 60px;
    background: #fff;
}

.r33-bpg-wrap .elementor-widget-archive-posts { width: 100%; }

/* ── Card media ───────────────────────────────────────────────── */

.r33-bpg-wrap .escort-card-v2 .escort-media {
    position: relative;
    height  : 420px;
    overflow: hidden;
}

.r33-bpg-wrap .escort-media .elementor-widget:not(.escort-image) { display: none !important; }

.r33-bpg-wrap .escort-media .flex-control-nav,
.r33-bpg-wrap .escort-media .flex-direction-nav { display: none !important; }

/* ── Verified pill on cards ───────────────────────────────────── */

.r33-bpg-wrap .pb-badge-overlay .r33-grid-verified {
    position      : absolute !important;
    bottom        : 10px !important;
    left          : 10px !important;
    display       : flex !important;
    align-items   : center !important;
    gap           : 4px !important;
    background    : rgba(0,0,0,.72) !important;
    color         : #5fc181 !important;
    font-size     : 9px !important;
    font-weight   : 700 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    padding       : 3px 7px 3px 5px !important;
    border-radius : 4px !important;
    white-space   : nowrap !important;
    pointer-events: none !important;
    line-height   : 1.2 !important;
}

/* ── Fallback grid ────────────────────────────────────────────── */

.r33-biz-gd-grid {
    list-style           : none;
    margin               : 0;
    padding              : 0;
    display              : grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap                  : 20px;
    align-items          : start;
}

.r33-biz-gd-grid > li { margin: 0; padding: 0; }

/* ── Empty state ──────────────────────────────────────────────── */

.r33-agency-empty {
    text-align: center;
    padding   : 60px 0;
    color     : #888;
    font-size : 0.9rem;
}

/* ── Responsive ───────────────────────────────────────────────── */

@media (max-width: 900px) {

    /* 2×2 grid */
    .r33-bph-layout { grid-template-columns: repeat(2, 1fr); }

    .r33-bph-col--right {
        border-top : 1px solid #f0f0f0;
        padding-top: 20px;
    }

    .r33-bph-schedule {
        display              : grid;
        grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
        gap                  : 0 24px;
    }

}

@media (max-width: 640px) {

    .r33-bph-cover { height: 200px; }

    .r33-bph-layout { grid-template-columns: 1fr; }

    .r33-bph-col--left {
        flex-direction: row;
        align-items   : flex-start;
        gap           : 16px;
    }

    .r33-bph-logo {
        width     : 96px;
        height    : 96px;
        margin-top: -48px;
    }

    .r33-bph-hero--no-cover .r33-bph-logo { margin-top: 0; }

    .r33-bph-col--middle,
    .r33-bph-col--contact,
    .r33-bph-col--right { border-left: none; border-top: 1px solid #f0f0f0; padding-top: 20px; }

    .r33-bph-col--left { border-top: none; padding-top: 28px; }

    .r33-bph-name { font-size: 1.3rem; }

    .r33-bph-schedule { grid-template-columns: 1fr; }

}

@media (max-width: 480px) {
    .r33-bph-col { padding: 20px 16px 24px; }
    .r33-bph-logo__initials { font-size: 2.4rem; }
}
