/* 
   AstroBhagya Astrologer Profile — Concept B: Provider Dashboard
   Scoped to: .astro-profile-wrapper
   Pass: Weekly Availability Spacing & 2-Column Dashboard Reviews
*/

/* =====================================================
   DESIGN TOKENS
===================================================== */
.astro-profile-wrapper {
    --brand-orange: #f37021;
    --brand-orange-hover: #e06015;
    --brand-orange-light: #fff7ed;
    --brand-orange-border: #fed7aa;

    --brand-navy: #1a237e;
    --brand-navy-light: #283593;

    --text-primary: #111827;
    --text-secondary: #4b5563;
    --text-muted: #6b7280;

    --bg-page: #f8fafc;
    --bg-card: #ffffff;
    --border-color: #e5e7eb;
    --border-light: #f1f5f9;

    --status-online: #22c55e;
    --status-offline: #9ca3af;
    --status-busy: #f59e0b;

    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --radius-full: 9999px;

    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
    --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.04);
    --shadow-lg: 0 10px 24px rgba(0, 0, 0, 0.10), 0 4px 6px rgba(0, 0, 0, 0.04);

    font-family: var(--font-body);
    background-color: var(--bg-page);
    padding-bottom: 48px;
}

.astro-profile-wrapper h1,
.astro-profile-wrapper h2,
.astro-profile-wrapper h3,
.astro-profile-wrapper h4,
.astro-profile-wrapper h5,
.astro-profile-wrapper h6,
.astro-profile-wrapper .section-main-heading,
.astro-profile-wrapper .astro-hero-name {
    font-family: var(--font-heading);
}

/* Page-level gutter */
@media (min-width: 992px) {
    .astro-profile-wrapper .container-fluid {
        padding-left: 32px;
        padding-right: 32px;
    }
}

/* =====================================================
   ICON FONT WEIGHT & RENDERING FIX
===================================================== */
.astro-profile-wrapper .fa-regular,
.astro-profile-wrapper .far {
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 400 !important;
}

.astro-profile-wrapper .fa-solid,
.astro-profile-wrapper .fas {
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 900 !important;
}

.astro-profile-wrapper .fa-brands,
.astro-profile-wrapper .fab {
    font-family: 'Font Awesome 6 Brands' !important;
    font-weight: 400 !important;
}

/* =====================================================
   1. PROFILE HEADER / HERO (Top Full-Width Banner)
===================================================== */
.astro-hero-card {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    padding: 20px 24px;
    margin-bottom: 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    text-align: center;
    width: 100%;
}

@media (min-width: 992px) {
    .astro-hero-card {
        flex-direction: row;
        align-items: center !important;
        justify-content: flex-start;
        text-align: left;
        gap: 24px;
        padding: 20px 28px;
    }
}

/* Zone 1: Profile Image */
.astro-hero-image-wrapper {
    position: relative;
    width: 88px;
    height: 88px;
    flex-shrink: 0;
    margin: 0 auto;
}

@media (min-width: 992px) {
    .astro-hero-image-wrapper {
        width: 116px;
        height: 116px;
        margin: 0 !important;
        align-self: center !important;
    }
}

.astro-hero-image-wrapper img.psychicpic {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: var(--radius-full);
    border: 3px solid #fff;
    box-shadow: 0 0 0 3px var(--brand-orange-border);
    display: block;
    transition: transform 0.2s ease;
    cursor: pointer;
}

.astro-hero-image-wrapper img.psychicpic:hover {
    transform: scale(1.04);
}

.astro-hero-verified-badge {
    position: absolute;
    bottom: -4px;
    left: 50%;
    transform: translateX(-50%);
    background: #fff;
    border-radius: var(--radius-full);
    padding: 2px;
    box-shadow: var(--shadow-sm);
    line-height: 0;
}

/* Zone 2: Profile Information */
.astro-hero-info {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    width: 100%;
    min-width: 0;
}

@media (min-width: 992px) {
    .astro-hero-info {
        flex: 1;
        align-items: flex-start;
        justify-content: center;
        gap: 6px;
        align-self: center !important;
    }
}

.astro-hero-header {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    width: 100%;
    margin-bottom: 2px;
}

@media (min-width: 992px) {
    .astro-hero-header {
        justify-content: flex-start;
    }
}

.astro-hero-name {
    font-size: 22px;
    font-weight: 800;
    color: var(--brand-navy);
    margin: 0;
    letter-spacing: -0.4px;
    line-height: 1.2;
}

@media (min-width: 992px) {
    .astro-hero-name {
        font-size: 24px;
    }
}

#astrologer-live-status {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 10px;
    border-radius: var(--radius-full);
    border: 1px solid var(--border-color);
    background: var(--bg-page);
    font-size: 12px !important;
    font-weight: 600;
    white-space: nowrap;
}

#astrologer-live-status[style*="#28a745"] {
    color: var(--status-online) !important;
    border-color: #bbf7d0 !important;
    background: #f0fdf4 !important;
}

#astrologer-live-status[style*="#fd7e14"] {
    color: var(--status-busy) !important;
    border-color: #fde68a !important;
    background: #fffbeb !important;
}

#astrologer-live-status[style*="#6b7280"] {
    color: var(--status-offline) !important;
    border-color: #e5e7eb !important;
    background: #f9fafb !important;
}

.astro-hero-meta-grid {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 4px 0;
    width: 100%;
    margin-bottom: 4px;
}

@media (min-width: 992px) {
    .astro-hero-meta-grid {
        justify-content: flex-start;
    }
}

.astro-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding-right: 14px;
    margin-right: 8px;
    position: relative;
}

.astro-meta-item:not(:last-child)::after {
    content: '|';
    position: absolute;
    right: 0;
    color: #d1d5db;
    font-weight: 400;
    font-size: 13px;
    top: 50%;
    transform: translateY(-50%);
}

.astro-meta-icon {
    color: var(--text-muted);
    font-size: 13px;
    display: none;
}

.astro-meta-content {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.astro-meta-label {
    font-size: 12px;
    font-weight: 500;
    color: var(--text-muted);
}

.astro-meta-value {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-primary);
}

.astro-hero-rating-box {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-primary);
}

.astro-hero-rating-box i {
    color: #f59e0b;
    font-size: 12px;
}

.astro-hero-review-count {
    font-size: 12px;
    font-weight: 500;
    color: var(--text-secondary);
}

.astro-hero-skills-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    justify-content: center;
    width: 100%;
    margin-top: 2px;
}

@media (min-width: 992px) {
    .astro-hero-skills-row {
        justify-content: flex-start;
    }
}

.astro-skill-pill {
    background: var(--brand-orange-light);
    color: var(--brand-orange-hover);
    border: 1px solid var(--brand-orange-border);
    border-radius: var(--radius-full);
    padding: 4px 12px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
}

.astro-skill-pill.primary {
    background: var(--brand-orange);
    color: #fff;
    border-color: var(--brand-orange);
}

/* Zone 3: Actions (Follow & Share Visually Paired Controls) */
.astro-hero-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
    flex-shrink: 0;
    width: 100%;
}

.follow-form,
.unfollow-form {
    margin: 0;
    padding: 0;
    display: block;
}

.stitch-btn-follow,
.stitch-btn-share {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    height: 40px !important;
    padding: 0 20px !important;
    border-radius: var(--radius-full) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    transition: all 0.2s ease !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
    text-decoration: none !important;
    border: 1.5px solid var(--brand-navy) !important;
    background: transparent !important;
    color: var(--brand-navy) !important;
}

.stitch-btn-follow i,
.stitch-btn-share i {
    font-size: 14px !important;
    display: inline-block !important;
    vertical-align: middle !important;
}

.stitch-btn-follow:hover,
.stitch-btn-share:hover {
    background: var(--brand-navy) !important;
    color: #ffffff !important;
}

.stitch-btn-unfollow {
    border-color: var(--border-color) !important;
    color: var(--text-secondary) !important;
    background: var(--bg-page) !important;
}

.stitch-btn-unfollow:hover {
    background: #f3f4f6 !important;
    color: var(--text-primary) !important;
    border-color: #d1d5db !important;
}

@media (min-width: 992px) {
    .astro-hero-actions {
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: center !important;
        gap: 10px !important;
        width: 128px !important;
        margin-left: auto !important;
        padding-left: 24px !important;
        border-left: 1px solid var(--border-color) !important;
        align-self: center !important;
    }

    .follow-form,
    .unfollow-form,
    .stitch-btn-follow,
    .stitch-btn-share {
        width: 100% !important;
    }
}

/* Relaxed Mobile Header (<=767px) */
@media (max-width: 767px) {
    .astro-hero-card {
        padding: 20px 16px !important;
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
        gap: 12px !important;
    }

    .astro-hero-image-wrapper {
        width: 88px !important;
        height: 88px !important;
        margin: 0 auto !important;
        align-self: center !important;
    }

    .astro-hero-info {
        align-items: center !important;
        text-align: center !important;
        gap: 6px !important;
        width: 100% !important;
    }

    .astro-hero-header {
        justify-content: center !important;
        text-align: center !important;
        gap: 6px !important;
    }

    .astro-hero-name {
        font-size: 20px !important;
    }

    .astro-hero-meta-grid {
        justify-content: center !important;
        gap: 4px 0 !important;
    }

    .astro-hero-skills-row {
        justify-content: center !important;
        gap: 6px !important;
    }

    .astro-hero-actions {
        flex-direction: row !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 10px !important;
        width: 100% !important;
        margin: 4px 0 0 0 !important;
        padding: 0 !important;
        border: none !important;
    }

    .follow-form,
    .unfollow-form {
        width: auto !important;
        flex: 1;
        max-width: 140px;
    }

    .stitch-btn-follow,
    .stitch-btn-share {
        width: 100% !important;
        max-width: 140px !important;
        min-height: 44px !important;
        font-size: 13px !important;
    }
}

/* =====================================================
   2. ABOUT & CONTENT CARD (Accordions)
===================================================== */
.astro-about-card {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    padding: 20px 24px;
    margin-bottom: 24px;
    overflow: hidden;
}

@media (min-width: 992px) {
    .astro-about-card {
        padding: 24px 32px;
    }
}

.astro-accordion-item {
    width: 100%;
}

.astro-accordion-header {
    cursor: pointer !important;
    min-height: 44px;
    user-select: none;
}

.astro-accordion-header h3.section-main-heading {
    font-size: 16px !important;
    font-weight: 800 !important;
    color: var(--brand-navy) !important;
    margin: 0 !important;
    letter-spacing: -0.2px !important;
}

.astro-accordion-header .accordion-icon {
    font-size: 14px;
    color: var(--brand-navy);
    transition: transform 0.25s ease;
}

.astro-accordion-header[aria-expanded="true"] .accordion-icon {
    transform: rotate(180deg);
}

.astro-accordion-header[aria-expanded="false"] .accordion-icon {
    transform: rotate(0deg);
}

.astro-about-card .about-section p,
.astro-about-card .astro-accordion-body p {
    font-size: 15px;
    line-height: 1.75;
    color: var(--text-secondary);
    margin-bottom: 12px;
    width: 100% !important;
}

.astro-about-card .astro-accordion-body p:last-child {
    margin-bottom: 0;
}

.astro-about-card .font-weight-bold {
    color: var(--text-primary);
    font-weight: 700;
}

/* Specialization Chips */
.astro-about-card ul,
.astro-about-card #profile-specialization ul,
.astro-about-card .psychic-specialization ul {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
    width: 100% !important;
}

.astro-about-card ul li,
.astro-about-card #profile-specialization ul li,
.astro-about-card .psychic-specialization ul li {
    float: none !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 6px 14px !important;
    background: var(--brand-orange-light) !important;
    border: 1px solid var(--brand-orange-border) !important;
    border-radius: var(--radius-full) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--brand-orange-hover) !important;
    line-height: 1.4 !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
}

/* =====================================================
   3. GIFT / DAKSHINA SECTION
===================================================== */
.gift-section {
    margin-top: 24px !important;
    margin-bottom: 24px !important;
    width: 100%;
    clear: both;
}

.gift-section .gift-card {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    padding: 24px;
    margin-bottom: 0;
}

@media (min-width: 992px) {
    .gift-section .gift-card {
        padding: 28px 32px;
    }
}

.gift-section .gift-header {
    margin-bottom: 20px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--border-color);
}

.gift-section .gift-header h4.section-main-heading {
    font-size: 16px !important;
    font-weight: 800 !important;
    color: var(--brand-navy) !important;
    margin: 0 !important;
    letter-spacing: -0.2px !important;
}

/* Equal-width Grid Layout (Default Main Column: 5 Cols) */
.gift-section .gift-grid {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 14px !important;
    margin-bottom: 24px !important;
    width: 100% !important;
}

/* Sidebar Scoped & Mobile WebView Gift Grid (2 Cols) */
.col-lg-4 .gift-section .gift-grid,
.col-xl-3 .gift-section .gift-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
}

@media (max-width: 991px) {
    .gift-section .gift-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }
}

/* Gift Card Item */
.gift-section .gift-item {
    background: var(--bg-card) !important;
    border: 1.5px solid var(--border-color) !important;
    border-radius: var(--radius-md) !important;
    padding: 14px 10px !important;
    cursor: pointer !important;
    text-align: center !important;
    transition: all 0.2s ease !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    box-sizing: border-box !important;
    width: 100% !important;
    position: relative !important;
}

.gift-section .gift-item:hover {
    border-color: var(--brand-orange-border) !important;
    background: var(--brand-orange-light) !important;
    transform: translateY(-2px) !important;
    box-shadow: var(--shadow-sm) !important;
}

/* Selected State */
.gift-section .gift-item.selected {
    border-color: var(--brand-orange) !important;
    background: var(--brand-orange-light) !important;
    box-shadow: 0 0 0 2px var(--brand-orange), 0 4px 12px rgba(243, 112, 33, 0.2) !important;
    transform: translateY(-2px) !important;
}

/* Gift Image Box */
.gift-section .gift-image {
    width: 64px !important;
    height: 64px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
    overflow: hidden !important;
    border-radius: var(--radius-sm) !important;
}

.gift-section .gift-image img {
    max-width: 100% !important;
    max-height: 100% !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    display: block !important;
}

/* Gift Details */
.gift-section .gift-details {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 2px !important;
    width: 100% !important;
}

.gift-section .gift-name {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--text-primary) !important;
    margin: 0 !important;
    line-height: 1.3 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    max-width: 100% !important;
}

.gift-section .gift-price {
    font-size: 14px !important;
    font-weight: 800 !important;
    color: var(--brand-orange) !important;
}

/* Send Gift CTA Action */
.gift-section .gift-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin-top: 8px;
}

.gift-section #send-gift,
.gift-section #send-giftBtn,
.gift-section .gift-send-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 32px;
    height: 48px;
    min-height: 48px;
    width: auto;
    min-width: 160px;
    border-radius: var(--radius-full);
    font-size: 15px;
    font-weight: 700;
    color: #ffffff;
    background: var(--brand-orange);
    border: none;
    box-shadow: 0 4px 14px rgba(243, 112, 33, 0.35);
    cursor: pointer;
    transition: all 0.2s ease;
    box-sizing: border-box;
}

.gift-section #send-gift:hover {
    background: var(--brand-orange-hover);
    box-shadow: 0 6px 18px rgba(243, 112, 33, 0.45);
    transform: translateY(-1px);
}

/* Default Idle State: Hide loading button */
.gift-section #send-giftBtn,
.gift-section .gift-send-btn.loading-btn {
    display: none;
}

/* =====================================================
   4. ACTION CARD (RIGHT SIDEBAR)
===================================================== */
.astro-action-card {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    padding: 20px;
    display: flex;
    flex-direction: column;
    margin-bottom: 24px !important;
    position: relative;
    width: 100%;
}

@media (min-width: 992px) {
    .astro-action-card {
        padding: 24px;
        margin-bottom: 24px !important;
    }
}

.astro-action-card .price-main-row,
.astro-action-card div.price-main-row[style] {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 4px !important;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--border-color);
    margin-bottom: 16px;
    width: 100%;
}

.astro-action-card .price-main-row .fa-video {
    display: none !important;
}

.astro-action-card .price-main-row .price-sub-label {
    font-size: 11px !important;
    font-weight: 600 !important;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: var(--text-muted) !important;
}

.astro-action-card .price-main-row .price-strike {
    font-size: 13px !important;
    color: var(--text-muted) !important;
    text-decoration: line-through;
    font-weight: 500;
}

.astro-action-card .price-main-row .price-final {
    font-size: 28px !important;
    font-weight: 900 !important;
    color: var(--brand-navy) !important;
    letter-spacing: -0.8px;
    line-height: 1;
}

.astro-action-card .price-main-row .price-intro-label {
    font-size: 11px !important;
    font-weight: 700 !important;
    color: #16a34a !important;
    background: #f0fdf4;
    padding: 4px 12px;
    border-radius: var(--radius-full);
    border: 1px solid #bbf7d0;
    display: inline-block;
    margin-top: 4px;
}

.astro-action-card .discount-offers-row {
    width: 100%;
    margin-bottom: 14px;
}

.astro-action-card .discount-badge,
.astro-action-card p.discount-badge {
    font-size: 13px !important;
    font-weight: 500;
    line-height: 1.5;
    border-radius: var(--radius-md);
    padding: 10px 14px !important;
    margin-bottom: 12px !important;
    width: 100%;
    text-align: left !important;
}

.astro-action-card .text-danger,
.astro-action-card .text-success,
.astro-action-card .text-muted.font-weight-bold {
    font-size: 13px !important;
    border-radius: var(--radius-md);
    padding: 10px 14px !important;
    margin-bottom: 14px !important;
    width: 100%;
    text-align: left !important;
    line-height: 1.5;
}

.astro-action-card p.discount-badge.text-success,
.astro-action-card .text-success {
    background: #f0fdf4 !important;
    color: #16a34a !important;
    border: 1px solid #bbf7d0;
}

.astro-action-card p.discount-badge.text-muted,
.astro-action-card .text-muted.font-weight-bold {
    background: var(--bg-page) !important;
    color: var(--text-muted) !important;
    border: 1px solid var(--border-color);
}

.astro-action-card .btn-chat-profile {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 48px;
    border-radius: var(--radius-full) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    letter-spacing: 0.2px;
    transition: all 0.2s ease;
    margin-bottom: 10px;
    border: none;
    cursor: pointer;
}

.astro-action-card .btn-chat-profile span.d-flex {
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
}

.astro-action-card #pre-booking-btn {
    background: var(--brand-orange) !important;
    color: #fff !important;
    border: none !important;
    box-shadow: 0 4px 14px rgba(243, 112, 33, 0.3) !important;
}

.astro-action-card #pre-booking-btn:hover {
    background: var(--brand-orange-hover) !important;
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(243, 112, 33, 0.4) !important;
}

.astro-action-card #video-call-btn.btn-primary-modern {
    background: var(--brand-orange) !important;
    color: #fff !important;
    border: none !important;
    box-shadow: 0 4px 14px rgba(243, 112, 33, 0.3) !important;
}

.astro-action-card #video-call-btn.btn-primary-modern:hover {
    background: var(--brand-orange-hover) !important;
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(243, 112, 33, 0.4) !important;
    color: #fff !important;
}

.astro-action-card #video-call-btn.disabled,
.astro-action-card #video-call-btn:disabled,
.astro-action-card #video-call-btn.expert-busy,
.astro-action-card #video-call-btn.btn-opacity {
    background: #f3f4f6 !important;
    color: var(--text-muted) !important;
    border: 1.5px solid var(--border-color) !important;
    cursor: not-allowed;
    pointer-events: none;
    box-shadow: none !important;
    opacity: 0.75;
}

.latest-session-details {
    padding-top: 14px;
    border-top: 1px solid var(--border-color);
    margin-top: 4px;
}

.latest-session-details p {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--text-muted);
    margin-bottom: 6px;
}

.latest-session-details .session-info {
    font-size: 13px;
    color: var(--text-secondary);
    font-weight: 500;
}

/* =====================================================
   5. AVAILABILITY SECTION (Compact Full-Width Dashboard)
===================================================== */
.availability-section {
    background: var(--bg-card) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: var(--shadow-sm) !important;
    padding: 20px 24px !important;
    margin-top: 20px !important;
    margin-bottom: 20px !important;
    width: 100% !important;
}

@media (min-width: 992px) {
    .availability-section {
        padding: 22px 28px !important;
    }
}

.availability-card {
    width: 100%;
}

.availability-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
    margin-bottom: 18px !important;
    padding-bottom: 14px !important;
    border-bottom: 1px solid var(--border-color) !important;
}

.availability-header h3 {
    font-size: 16px !important;
    font-weight: 800 !important;
    color: var(--brand-navy) !important;
    margin: 0 !important;
    letter-spacing: -0.2px !important;
}

.availability-badge {
    background: #f0fdf4 !important;
    color: #16a34a !important;
    border: 1.5px solid #bbf7d0 !important;
    padding: 5px 16px !important;
    border-radius: var(--radius-full) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    display: inline-block !important;
}

.availability-badge:hover {
    background: #dcfce7 !important;
    border-color: #86efac !important;
    transform: translateY(-1px) !important;
}

.availability-schedule {
    width: 100%;
}

.schedule-grid-centered {
    width: 100% !important;
    max-width: 1050px !important;
    margin: 0 auto !important;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 14px !important;
}

@media (max-width: 1199px) and (min-width: 768px) {
    .schedule-grid-centered {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }
}

@media (max-width: 767px) {
    .schedule-grid-centered {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }
}

.day-schedule {
    background: var(--bg-card) !important;
    border: 1.5px solid var(--border-color) !important;
    border-radius: var(--radius-md) !important;
    padding: 12px 10px !important;
    text-align: center !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    gap: 8px !important;
    transition: all 0.2s ease !important;
    box-sizing: border-box !important;
    width: 100% !important;
    min-height: 95px !important;
}

.day-schedule:hover {
    border-color: var(--brand-orange-border) !important;
    box-shadow: var(--shadow-sm) !important;
    transform: translateY(-2px) !important;
}

.day-schedule.has-slots {
    border-color: #bbf7d0 !important;
    background: #f0fdf4 !important;
}

.day-schedule .day-header {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 2px !important;
    padding-bottom: 6px !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06) !important;
}

.day-schedule .day-name {
    font-size: 13px !important;
    font-weight: 700 !important;
    color: var(--brand-navy) !important;
    margin: 0 !important;
}

.day-schedule .day-date {
    font-size: 11px !important;
    font-weight: 600 !important;
    color: var(--text-muted) !important;
}

.day-schedule .day-slots {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
}

.day-schedule .slot-time {
    font-size: 12px !important;
    font-weight: 700 !important;
    color: #15803d !important;
    background: #ffffff !important;
    padding: 4px 10px !important;
    border-radius: var(--radius-sm) !important;
    border: 1px solid #bbf7d0 !important;
    display: inline-block !important;
    white-space: nowrap !important;
}

.day-schedule .unavailable-text {
    font-size: 11px !important;
    font-weight: 600 !important;
    color: var(--text-muted) !important;
}

/* =====================================================
   6. REVIEWS & RATINGS (2-Column Dashboard Layout)
===================================================== */
#review,
.reviews-section {
    background: var(--bg-card) !important;
    border: 1.5px solid var(--border-color) !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: var(--shadow-sm) !important;
    padding: 0 !important;
    overflow: hidden !important;
    margin-top: 24px !important;
    margin-bottom: 32px !important;
    width: 100% !important;
}

.reviews-section .reviews-header,
#review .reviews-header {
    background: var(--bg-page) !important;
    padding: 16px 20px !important;
    margin: 0 !important;
    border-bottom: 1px solid var(--border-color) !important;
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

@media (min-width: 992px) {
    .reviews-section .reviews-header,
    #review .reviews-header {
        padding: 18px 28px !important;
    }
}

.reviews-section .reviews-header::after,
#review .reviews-header::after {
    content: '' !important;
    position: absolute !important;
    bottom: -1px !important;
    left: 0 !important;
    width: 100% !important;
    height: 2px !important;
    background: var(--brand-orange) !important;
}

.reviews-section .reviews-header h4.section-main-heading,
#review .reviews-header h4.section-main-heading,
#review h3.section-main-heading,
.reviews-section h3.section-main-heading {
    font-size: 16px !important;
    font-weight: 800 !important;
    color: var(--brand-navy) !important;
    margin: 0 !important;
    letter-spacing: -0.2px !important;
    line-height: 1.3 !important;
}

.reviews-section .reviews-dashboard-layout,
#review .reviews-dashboard-layout {
    padding: 20px !important;
}

@media (min-width: 992px) {
    .reviews-section .reviews-dashboard-layout,
    #review .reviews-dashboard-layout {
        padding: 24px 28px !important;
    }
}

/* 2-Column Dashboard Grid */
.reviews-dashboard-layout {
    display: grid !important;
    grid-template-columns: 34% 64% !important;
    gap: 2% !important;
    align-items: start !important;
    width: 100% !important;
}

@media (max-width: 991px) {
    .reviews-dashboard-layout {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }
}

/* Left Column: Summary Panel */
.reviews-summary-panel {
    background: var(--bg-page) !important;
    border: 1.5px solid var(--border-color) !important;
    border-radius: var(--radius-md) !important;
    padding: 20px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 18px !important;
    box-shadow: var(--shadow-sm) !important;
}

.rating-score-side {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    padding-bottom: 16px !important;
    border-bottom: 1px solid var(--border-color) !important;
}

.rating-score-side .big-score {
    font-size: 38px !important;
    font-weight: 900 !important;
    color: var(--brand-navy) !important;
    line-height: 1 !important;
    margin-bottom: 6px !important;
    letter-spacing: -0.8px !important;
}

.rating-score-side .stars-row {
    display: flex !important;
    gap: 3px !important;
    color: #f59e0b !important;
    font-size: 14px !important;
    margin-bottom: 6px !important;
}

.rating-score-side .total-count {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--text-muted) !important;
    margin: 0 !important;
}

.rating-bars-side {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    width: 100% !important;
}

.rating-bars-side .bar-row {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    font-size: 12px !important;
}

.rating-bars-side .star-icons-label {
    display: flex !important;
    gap: 2px !important;
    color: #f59e0b !important;
    font-size: 11px !important;
    width: 72px !important;
    flex-shrink: 0 !important;
}

.rating-bars-side .progress {
    flex: 1 !important;
    height: 7px !important;
    border-radius: var(--radius-full) !important;
    background: var(--border-color) !important;
    overflow: hidden !important;
    margin: 0 !important;
}

.rating-bars-side .progress-bar.bg-warning {
    background: #f59e0b !important;
    border-radius: var(--radius-full) !important;
}

.rating-bars-side .pct-label {
    width: 36px !important;
    text-align: right !important;
    font-weight: 700 !important;
    color: var(--text-primary) !important;
    font-size: 12px !important;
    flex-shrink: 0 !important;
}

/* Right Column: Scrollable Review List */
.reviews-feed-panel {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
}

.reviews-sub-title {
    font-size: 15px !important;
    font-weight: 800 !important;
    color: var(--brand-navy) !important;
    margin: 0 0 14px 0 !important;
    letter-spacing: -0.2px !important;
}

.reviews-scroll-container {
    max-height: 520px !important;
    overflow-y: auto !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    padding-right: 6px !important;
}

/* Custom Scrollbar */
.reviews-scroll-container::-webkit-scrollbar {
    width: 6px;
}

.reviews-scroll-container::-webkit-scrollbar-track {
    background: #f1f5f9;
    border-radius: 4px;
}

.reviews-scroll-container::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 4px;
}

.reviews-scroll-container::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}

.review-card {
    background: var(--bg-card) !important;
    border: 1.5px solid var(--border-color) !important;
    border-radius: var(--radius-md) !important;
    padding: 16px 18px !important;
    box-shadow: var(--shadow-sm) !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    transition: all 0.2s ease !important;
    box-sizing: border-box !important;
    width: 100% !important;
}

.review-card:hover {
    border-color: #cbd5e1 !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05) !important;
}

.review-card-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
}

.reviewer-info {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
}

.reviewer-info .avatar-circle {
    width: 40px !important;
    height: 40px !important;
    border-radius: 50% !important;
    object-fit: cover !important;
    border: 1.5px solid var(--border-color) !important;
    flex-shrink: 0 !important;
}

.reviewer-info .reviewer-name {
    font-size: 14px !important;
    font-weight: 700 !important;
    color: var(--text-primary) !important;
    margin: 0 !important;
}

.reviewer-stars {
    display: flex !important;
    gap: 2px !important;
    color: #f59e0b !important;
    font-size: 12px !important;
    flex-shrink: 0 !important;
}

.review-card-body p {
    font-size: 14px !important;
    line-height: 1.55 !important;
    color: var(--text-secondary) !important;
    margin: 0 !important;
    word-break: break-word !important;
}

.text-muted-star {
    color: #d1d5db !important;
}

/* =====================================================
   7. LOWER SECTIONS ALIGNMENT & SPACING RHYTHM
===================================================== */
.astro-lower-sections {
    padding-left: 0;
    padding-right: 0;
    margin-top: 24px;
}

@media (min-width: 992px) {
    .astro-lower-sections {
        margin-top: 32px;
    }
}

.expert-profile-page-new.astro-profile-wrapper,
.astro-profile-wrapper {
    background-color: #f8fafc;
    min-height: 100vh;
}

/* =====================================================
   8. MOBILE ORDER & RESPONSIVE BREAKPOINTS
===================================================== */
.astro-profile-wrapper * {
    box-sizing: border-box;
}

@media (max-width: 991.98px) {
    .astro-profile-wrapper .astro-profile-main-row {
        display: flex !important;
        flex-direction: column !important;
    }

    .astro-profile-wrapper .astro-profile-main-row > .main-profile-col,
    .astro-profile-wrapper .astro-profile-main-row > .side-profile-col {
        display: contents !important;
    }

    /* Target Mobile Order:
       1. Header
       2. Consultation (Action Card)
       3. About Me
       4. Gift Section
       5. Weekly Availability
       6. Reviews (Lower Section)
    */
    .astro-hero-card {
        order: 1 !important;
        margin-bottom: 20px !important;
        width: 100% !important;
    }

    .astro-action-card {
        order: 2 !important;
        position: static !important;
        margin-bottom: 20px !important;
        width: 100% !important;
    }

    .astro-about-card {
        order: 3 !important;
        margin-bottom: 20px !important;
        width: 100% !important;
    }

    .gift-section {
        order: 4 !important;
        margin-top: 0 !important;
        margin-bottom: 20px !important;
        width: 100% !important;
    }

    .availability-section-wrapper {
        order: 5 !important;
        margin-top: 0 !important;
        margin-bottom: 20px !important;
        width: 100% !important;
    }
}

/* Consistent spacing between Consultation card and Gift section on Desktop */
@media (min-width: 992px) {
    .gift-section {
        margin-top: 24px !important;
    }
}

@media (max-width: 767px) {
    .astro-about-card {
        padding: 18px 16px !important;
    }

    .astro-action-card {
        padding: 18px 16px !important;
    }

    #review,
    .reviews-section {
        padding: 18px 16px !important;
    }

    .gift-section .gift-card {
        padding: 18px 16px !important;
    }

    .availability-section {
        padding: 18px 16px !important;
    }

    .stitch-btn-follow,
    .gift-send-btn,
    .astro-action-card .btn-chat-profile {
        min-height: 44px;
    }
}

.astro-profile-wrapper {
    overflow-x: hidden;
}

.astro-profile-wrapper .container-fluid {
    overflow: hidden;
}