/**
 * Theme Name:     Astra Child
 * Author:         Brainstorm Force
 * Template:       astra
 * Text Domain:	   astra-child
 * Description:    The Astra WordPress theme is lightning-fast and highly customizable. It has over 1 million downloads and the only theme in the world with 6,000+ five-star reviews! It’s ideal for professional web designers, solopreneurs, small businesses, eCommerce, membership sites and any type of website. It offers special features and templates so it works perfectly with all page builders like Spectra, Elementor, Beaver Builder, etc. Fast performance, clean code, mobile-first design and schema markup are all built-in, making the theme exceptionally SEO-friendly. It’s fully compatible with WooCommerce, SureCart and other eCommerce plugins and comes with lots of store-friendly features and templates. Astra also provides expert support for free users. A dedicated team of fully trained WordPress experts are on hand to help with every aspect of the theme. Try the live demo of Astra: https://zipwp.org/themes/astra/
 */


 /* =============================================
   SINGLE FACILITY PAGE STYLES
   ============================================= */

.sm-single-facility {
    max-width: 1360px;
    margin: 0 auto;
        padding: 20px 20px 60px;
    width: 100%;
}

/* Hero Image */
.sm-facility-hero {
    margin-bottom: 40px;
}

.sm-hero-image {
    height: 420px;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
}

.sm-main-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Main Container */
.sm-container {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 50px;
    margin-bottom: 60px;
}

@media (max-width: 992px) {
    .sm-container {
        grid-template-columns: 1fr;
        gap: 40px;
    }
}

/* Main Content */
.sm-facility-main {
    flex: 1;
}

.sm-facility-header {
    margin-bottom: 30px;
}

.sm-facility-title {
    font-size: 2.4rem;
    margin: 0 0 12px 0;
    color: #1a2530;
    line-height: 1.2;
}

.sm-facility-meta {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
    color: #3d5260;
    font-size: 16px;
}

.sm-location {

}

.sm-rating-box {
    display: flex;
    gap: 10px;
}

/* Unit Table */
.sm-unit-section h2,
.sm-features h2 {
    font-size: 38px;
    margin: 40px 0 20px;
    color: #1a2530;
}

.sm-unit-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.06);
    border-radius: 12px;
    overflow: hidden;
}

.sm-unit-table th,
.sm-unit-table td {
    padding: 16px 20px;
    text-align: left;
    border-bottom: 1px solid #f1f5f9;
    font-size: 13px;
    color: #6B8090;
}

.sm-unit-table th {
    background: #f8fafc;
    font-weight: 600;
    color: #1A2530;
    text-transform: uppercase;
    font-size: 14px;
}

.sm-unit-table tr:last-child td {
    border-bottom: none;
}

.sm-unit-table strong {
    color: #1A2530;
}

/* Features */
.sm-feature-list {
    list-style: none;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    margin: 0px;
}

.sm-feature-list li {
    padding: 12px 0;
    border-bottom: 1px solid #f1f5f9;
    font-size: 13px;
    color: #6B8090;
}

/* Sidebar */
.sm-facility-sidebar {
    position: sticky;
    top: 30px;
    align-self: start;
}

.sm-enquiry-box,
.sm-review-section {
    background: #fff;
    padding: 28px;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.07);
    margin-bottom: 30px;
}

.sm-enquiry-box h3,
.sm-review-section h3 {
    margin-top: 0;
    font-size: 16px;
    color: #1a2530;
    margin-bottom: 12px;
}

.sm-enquiry-box p,
.sm-review-section p {
    font-size: 13px;
}

/* Review Form */
.sm-review-section select {
    width: 100%;
    padding: 12px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    margin-bottom: 20px;
    font-size: 1rem;
}

.sm-review-section textarea {
    width: 100%;
    min-height: 140px;
    padding: 14px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    resize: vertical;
}

/* All Reviews */
.sm-all-reviews {
    margin-top: 60px;
}

.sm-all-reviews h2 {
    font-size: 1.6rem;
    margin-bottom: 30px;
}

.sm-review-item {
    background: #fff;
    padding: 24px;
    border-radius: 12px;
    margin-bottom: 20px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
}

.sm-review-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
}

.sm-review-header strong {
    font-size: 1.1rem;
    color: #1e2937;
}

.sm-review-date {
    color: #94a3b8;
    font-size: 0.9rem;
    margin-bottom: 12px;
}

.sm-review-stars .star.full{
    color: #fbbf24;
    font-size: 1.25rem;
}

/* Buttons */
.sm-btn {
    display: inline-block;
    padding: 14px 28px;
    border-radius: 10px;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    transition: all 0.2s ease;
    border: none;
    cursor: pointer;
}

.sm-btn-primary {
    background: #4A8FA8;
    color: #fff;
    border: none;
    border-radius: 14px;
    font-size: 15px !important;
    font-weight: 600 !important;
    transition: background .15s;
    background-image: linear-gradient(90deg, #4A8FA8 0%, #2E6B84 100%);
    margin-top: 15px;
    width: 100%;
}

.sm-booking-form #smBookBtn{
    background: #4A8FA8 !important;
    background-image: linear-gradient(90deg, #4A8FA8 0%, #2E6B84 100%) !important;
    border-radius: 14px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    transition: background .15s;
}

.sm-btn-primary:hover {
    background: #024d78;
    transform: translateY(-2px);
}

/* Responsive */
@media (max-width: 768px) {
    .sm-single-facility {
        padding: 0 15px;
    }
    
    .sm-facility-title {
        font-size: 2rem;
    }
    
    .sm-container {
        gap: 30px;
    }
}

/* Gallery Styles */
.sm-gallery-container {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 20px;
    margin-bottom: 40px;
}

.sm-thumbnails {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-height: 480px;
    overflow-y: auto;
    padding-right: 8px;
}

.sm-thumbnail-item {
    width: 100%;
    height: 82px;
    border: 3px solid transparent;
    border-radius: 3px;
    overflow: hidden;
    cursor: pointer;
    transition: all 0.25s ease;
    flex-shrink: 0;
}

.sm-thumbnail-item.active {
    border-color: #0369a1;
    box-shadow: 0 0 0 3px rgba(3, 105, 161, 0.15);
}

.sm-thumbnail-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sm-main-image-container {
    position: relative;
    border-radius: 3px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    height: 480px;
}

.sm-main-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: opacity 0.4s ease;
}

/* Responsive */
@media (max-width: 768px) {
    .sm-gallery-container {
        grid-template-columns: 1fr;
        gap: 15px;
    }
    
    .sm-thumbnails {
        flex-direction: row;
        max-height: none;
        overflow-x: auto;
        padding-bottom: 10px;
    }
    
    .sm-main-image-container {
        height: 320px;
    }
}

/* Map */
.sm-map-section {
    margin: 60px 0;
}

.sm-facility-map {
    height: 420px;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08);
}

/* Review Form Styles */
.sm-review-form {
    margin-top: 20px;
}

.sm-rating-input label {
    display: block;
    margin-bottom: 10px;
    font-weight: 600;
}

.sm-star-selector {
    font-size: 2.2rem;
    color: #e2e8f0;
    cursor: pointer;
    user-select: none;
    margin-bottom: 20px;
}

.sm-star-selector .sm-star {
    transition: color 0.2s ease;
}

.sm-star-selector .sm-star:hover,
.sm-star-selector .sm-star.selected {
    color: #fbbf24;
}

.sm-review-textarea label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
}

.sm-review-textarea textarea {
    width: 100%;
    min-height: 120px;
    padding: 14px;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    font-size: 1rem;
}

.sm-login-notice {
    background: #f8fafc;
    padding: 20px;
    border-radius: 10px;
    text-align: center;
    color: #64748b;
}

/* Make stars yellow when selected */
.sm-star {
    color: #e2e8f0;
}
.sm-star.selected {
    color: #fbbf24;
}

/* Modal Styles */
.sm-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sm-modal-content {
    background: white;
    width: 90%;
    max-width: 480px;
    border-radius: 16px;
    padding: 30px;
    position: relative;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}

.sm-modal-close {
    position: absolute;
    top: 15px;
    right: 20px;
    font-size: 28px;
    cursor: pointer;
    color: #64748b;
}

.sm-modal-close:hover {
    color: #1e2937;
}

.sm-modal-content h3{
    margin-bottom: 20px;
}

.sm-enquiry-form .sm-form-row {
    margin-bottom: 18px;
}

.sm-enquiry-form label {
    display: block;
    margin-bottom: 6px;
    font-weight: 600;
    font-size: 14px;
}

.sm-enquiry-form input,
.sm-enquiry-form select,
.sm-enquiry-form textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1.5px solid #e2e8f0;
    border-radius: 8px;
    font-size: 14px;
    line-height: 1.1em;
}

.sm-enquiry-form textarea {
    resize: vertical;
    min-height: 100px;
}

.dokan-store .ast-woocommerce-container{
    max-width: 1360px;
    margin: auto;
}