/*
|--------------------------------------------------------------------------
| Core Responsive System
|--------------------------------------------------------------------------
| Mobile + Tablet Optimization
|--------------------------------------------------------------------------
*/

/*
|--------------------------------------------------------------------------
| Large Tablets
|--------------------------------------------------------------------------
*/
@media (max-width: 1199px) {

    .container {
        width: min(95%, 100%);
    }

    .premium-title {
        font-size: clamp(42px, 6vw, 68px);
    }

    .stats-grid,
    .contact-grid,
    .packages-grid,
    .features-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .contact-card.full-width {
        grid-column: span 2;
    }
}

/*
|--------------------------------------------------------------------------
| Tablets
|--------------------------------------------------------------------------
*/
@media (max-width: 991px) {

    section {
        padding: 70px 0;
    }

    .premium-hero {
        min-height: auto;
        padding: 110px 0 120px;
    }

    .premium-title {
        font-size: 48px;
    }

    .premium-subtitle {
        font-size: 22px;
    }

    .premium-description {
        font-size: 16px;
    }

    .premium-card,
    .card-box,
    .location-card,
    .cta-card,
    .package-card,
    .feature-card,
    .contact-card,
    .stat-card {
        padding: 28px;
    }

    .premium-button-group,
    .button-group,
    .package-actions,
    .premium-cta-buttons {
        gap: 14px;
    }

    .premium-map-container {
        min-height: 350px;
    }
}

/*
|--------------------------------------------------------------------------
| Mobile Devices
|--------------------------------------------------------------------------
*/
@media (max-width: 767px) {

    section {
        padding: 60px 0;
    }

    .container {
        width: 92%;
    }

    .premium-hero {
        padding: 90px 0 100px;
    }

    .premium-title {
        font-size: 34px;
        line-height: 1.2;
    }

    .premium-subtitle {
        font-size: 18px;
    }

    .premium-description {
        font-size: 15px;
        line-height: 1.7;
    }

    .premium-divider span {
        width: 50px;
    }

    .premium-badge {
        font-size: 11px;
        padding: 12px 18px;
        gap: 8px;
    }

    .stats-grid,
    .contact-grid,
    .packages-grid,
    .features-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .contact-card.full-width {
        grid-column: span 1;
    }

    .premium-button-group,
    .button-group,
    .package-actions,
    .premium-cta-buttons {
        flex-direction: column;
        align-items: stretch;
    }

    .premium-btn {
        width: 100%;
        justify-content: center;
    }

    .premium-card,
    .card-box,
    .location-card,
    .cta-card,
    .package-card,
    .feature-card,
    .contact-card,
    .stat-card {
        padding: 24px;
    }

    .stat-number {
        font-size: 32px;
    }

    .section-header h2,
    .section-header-premium h2 {
        font-size: 28px;
    }

    .premium-map-container {
        min-height: 280px;
    }

    iframe {
        min-height: 280px;
    }
}

/*
|--------------------------------------------------------------------------
| Small Mobile
|--------------------------------------------------------------------------
*/
@media (max-width: 480px) {

    .premium-title {
        font-size: 28px;
    }

    .premium-subtitle {
        font-size: 16px;
    }

    .premium-description {
        font-size: 14px;
    }

    .section-header h2,
    .section-header-premium h2 {
        font-size: 24px;
    }

    .premium-rating {
        padding: 12px 18px;
        gap: 8px;
        flex-wrap: wrap;
        justify-content: center;
    }

    .premium-badge {
        font-size: 10px;
        letter-spacing: 1px;
    }

    .premium-map-container {
        min-height: 240px;
    }
}