/* ============================================
   ARUPADAIVEEDU.COM - Mobile Responsive Styles
   ============================================ */

/* --- Global Mobile Fixes --- */
@media (max-width: 768px) {
    html, body {
        overflow-x: hidden;
        width: 100%;
    }

    img {
        max-width: 100%;
        height: auto;
    }

    .container {
        padding-left: 15px;
        padding-right: 15px;
    }

    /* Hero sections - all pages — enough top padding so content clears the fixed navbar */
    .hero, .about-hero, .booking-hero,
    .services-hero, .temples-hero {
        padding: 120px 0 50px;
        min-height: auto;
        text-align: center;
    }

    .hero h1, .about-hero h1, .booking-hero h1,
    .services-hero h1, .temples-hero h1 {
        font-size: 2rem;
        line-height: 1.3;
    }

    .hero p, .about-hero p {
        font-size: 0.95rem;
    }

    /* Hero images - remove 3D transforms on mobile */
    .hero-image,
    .about-hero-image img,
    .booking-hero-image img,
    .services-hero-image img,
    .temples-hero-image img,
    .about-image-container img {
        transform: none !important;
        max-height: 300px;
        width: 100%;
        object-fit: cover;
    }

    /* Section spacing */
    section {
        padding: 50px 0;
    }

    /* Section headings */
    section h2, .section-title {
        font-size: 1.6rem;
    }

    section h3 {
        font-size: 1.3rem;
    }

    /* Buttons full width on mobile */
    .cta-buttons .btn,
    .hero .btn {
        display: block;
        width: 100%;
        margin-bottom: 10px;
    }

    /* Footer */
    footer .row > div {
        margin-bottom: 1.5rem;
        text-align: center;
    }

    footer .social-icons {
        justify-content: center;
    }

    footer h5 {
        margin-bottom: 0.75rem;
    }
}

/* --- Small phones --- */
@media (max-width: 480px) {
    .hero h1, .about-hero h1, .booking-hero h1,
    .services-hero h1, .temples-hero h1 {
        font-size: 1.7rem;
    }

    .navbar-brand {
        font-size: 1.1rem;
    }

    .navbar-brand img {
        height: 35px;
    }

    section {
        padding: 40px 0;
    }

    /* Cards tighter padding */
    .feature-card, .temple-preview-card,
    .service-benefit-card, .value-card,
    .package-card, .assistance-card {
        padding: 1.25rem 1rem;
    }

    /* Stat items in hero */
    .stat-item h4 {
        font-size: 1.5rem;
    }

    .stat-item p {
        font-size: 0.8rem;
    }

    /* Tour option cards */
    .tour-option-card {
        padding: 1.25rem;
    }

    /* Booking form */
    .booking-form-container {
        padding: 1rem;
        border-radius: 12px;
    }

    .step-number {
        width: 38px;
        height: 38px;
        font-size: 0.85rem;
    }

    .step-label {
        font-size: 0.75rem;
    }

    /* Pilgrim cards */
    .pilgrim-card {
        padding: 12px;
    }

    .pilgrim-card .row > div {
        margin-bottom: 0.75rem;
    }
}

/* --- Tablet landscape tweaks --- */
@media (min-width: 769px) and (max-width: 1024px) {
    .hero, .about-hero, .booking-hero,
    .services-hero, .temples-hero {
        padding: 130px 0 70px;
    }

    .hero h1 {
        font-size: 2.5rem;
    }

    .hero-image {
        max-height: 400px;
    }
}

/* --- Touch-friendly tap targets --- */
@media (max-width: 768px) {
    .nav-link {
        min-height: 44px;
        display: flex;
        align-items: center;
    }

    .btn {
        min-height: 44px;
        padding: 10px 20px;
    }

    .form-control, .form-select {
        min-height: 44px;
        font-size: 16px; /* Prevents iOS zoom */
    }

    /* Back to top — move above the Quick Enquiry button */
    .back-to-top {
        width: 44px;
        height: 44px;
        bottom: 75px;
        right: 16px;
        z-index: 999;
    }

    /* Quick Enquiry floating button — stays at bottom-right */
    .floating-enquiry-btn {
        bottom: 16px;
        right: 16px;
        z-index: 998;
    }

    .enquiry-btn-content {
        padding: 10px 16px;
        font-size: 12px;
        gap: 6px;
    }
}

/* --- Enquiry form mobile improvements --- */
@media (max-width: 768px) {
    .enquiry-card .row {
        margin: 0;
    }

    .enquiry-bg {
        border-radius: 15px 15px 0 0;
    }

    .enquiry-form {
        border-radius: 0 0 15px 15px;
        padding: 20px;
    }
}

/* --- Tours city page --- */
@media (max-width: 768px) {
    .tour-card {
        margin-bottom: 1.5rem;
    }

    .tour-card .card-body {
        padding: 1rem;
    }

    .price-info {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.25rem;
    }
}

/* --- Contact page --- */
@media (max-width: 768px) {
    .contact-info-card {
        margin-bottom: 1.5rem;
    }

    .map-container {
        height: 250px;
    }

    .map-container iframe {
        height: 250px;
    }
}

/* --- Pricing tables mobile (Standard / Deluxe / Budget) --- */
@media (max-width: 768px) {
    .pricing-details {
        padding: 30px 0;
    }

    .pricing-table {
        border-radius: 12px;
        margin-bottom: 1.5rem;
    }

    .pricing-header {
        padding: 1.25rem 1rem;
    }

    .pricing-header h3 {
        font-size: 1.2rem;
    }

    .pricing-header p {
        font-size: 0.85rem;
    }

    /* Keep rows horizontal but make them scrollable */
    .pricing-body {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .pricing-row {
        display: flex;
        flex-direction: row;
        min-width: max-content;
    }

    .pricing-cell {
        padding: 0.85rem 0.75rem;
        min-width: 100px;
        font-size: 0.85rem;
    }

    .pricing-cell:first-child {
        min-width: 130px;
        position: sticky;
        left: 0;
        background: white;
        z-index: 1;
        border-right: 1px solid #eee;
        font-size: 0.8rem;
    }

    .pricing-row:hover .pricing-cell:first-child {
        background: #f8f9fa;
    }
}

@media (max-width: 480px) {
    .pricing-cell {
        padding: 0.7rem 0.6rem;
        min-width: 90px;
        font-size: 0.8rem;
    }

    .pricing-cell:first-child {
        min-width: 110px;
        font-size: 0.75rem;
    }
}

/* --- Tour city hero mobile --- */
@media (max-width: 768px) {
    .city-hero {
        padding: 80px 0 40px;
        min-height: auto;
    }

    /* Show image first, text below on mobile */
    .city-hero .row {
        flex-direction: column-reverse;
    }

    .city-hero h1 {
        font-size: 1.5rem;
        line-height: 1.3;
    }

    .city-hero .display-4 {
        font-size: 1.5rem !important;
    }

    .city-hero .lead {
        font-size: 0.85rem;
        margin-bottom: 1rem;
    }

    .hero-stats {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0.75rem;
    }

    .hero-stats .stat-item {
        text-align: center;
    }

    .hero-stats .stat-item h4 {
        font-size: 1.1rem;
    }

    .hero-stats .stat-item small {
        font-size: 0.75rem;
    }

    .hero-price h3 {
        font-size: 1.2rem;
    }

    .hero-price .price-amount {
        font-size: 1.4rem;
    }

    .hero-actions {
        display: flex;
        flex-direction: column;
        gap: 0.75rem;
    }

    .hero-actions .btn {
        width: 100%;
        margin: 0 !important;
    }

    /* Murugan image — proper aspect ratio, not cropped */
    .city-hero-image {
        margin-bottom: 1.5rem;
        text-align: center;
    }

    .city-hero-image img {
        width: 100%;
        max-height: 350px;
        object-fit: contain;
        border-radius: 12px;
    }

    .city-badge {
        margin-bottom: 0.75rem;
        text-align: center;
    }

    .floating-badge {
        display: none;
    }

    /* City selection header — push below fixed navbar */
    .city-selection-header {
        padding-top: 90px;
    }
}

/* --- Package option cards mobile --- */
@media (max-width: 768px) {
    .package-option-card {
        padding: 1rem;
        margin-bottom: 1rem;
    }

    .package-option-card .package-name {
        font-size: 0.95rem;
    }

    .package-option-card .price {
        font-size: 1.1rem;
    }
}

/* --- Itinerary timeline mobile --- */
@media (max-width: 768px) {
    .itinerary-timeline .timeline-item {
        padding-left: 0;
    }

    .timeline-day {
        flex-direction: column;
    }

    .day-number {
        width: 40px;
        height: 40px;
        font-size: 1rem;
        margin-bottom: 0.75rem;
    }

    .day-content h4 {
        font-size: 1rem;
    }

    .time-slot {
        flex-direction: column;
        gap: 0.25rem;
    }

    .time-slot .time {
        font-size: 0.8rem;
    }

    .time-slot .activity h5 {
        font-size: 0.9rem;
    }

    .time-slot .activity small {
        display: block;
        margin-left: 0 !important;
        margin-top: 0.25rem;
    }

    .meal-indicator {
        font-size: 0.85rem;
    }
}

/* --- Additional info sections mobile --- */
@media (max-width: 768px) {
    .additional-info {
        margin-bottom: 1rem;
    }

    .info-header {
        padding: 0.75rem 1rem;
        font-size: 0.9rem;
    }

    .info-header h4 {
        font-size: 1rem;
    }

    .info-content {
        padding: 0.75rem 1rem;
    }

    /* Inclusions / Exclusions lists */
    .inclusion-list li,
    .exclusion-list li {
        font-size: 0.85rem;
        padding: 0.5rem 0;
    }

    /* Festival charges table */
    .additional-info .table-responsive {
        font-size: 0.8rem;
    }

    /* Child policy cards */
    .child-policy-card {
        padding: 0.75rem;
        margin-bottom: 0.75rem;
    }
}

/* --- City selection header mobile --- */
@media (max-width: 768px) {
    .city-selection-header {
        padding: 80px 0 1rem;
    }

    .city-selection-header h4 {
        font-size: 1.1rem;
        margin-bottom: 0.75rem;
        text-align: center;
    }

    .city-selector {
        width: 100%;
    }

    /* City option icons */
    .city-highlights .city-option {
        padding: 0.75rem;
    }

    .city-icon {
        width: 50px;
        height: 50px;
    }

    .city-icon i {
        font-size: 1.2rem;
    }

    .city-option span {
        font-size: 0.8rem;
    }

    /* Default/empty state */
    .default-state h2 {
        font-size: 1.4rem;
    }

    .default-state .lead {
        font-size: 0.9rem;
    }

    .empty-state i {
        font-size: 2.5rem !important;
    }
}

/* --- Booking page mobile improvements --- */
@media (max-width: 768px) {
    /* Package summary card in booking */
    .package-summary-card {
        padding: 0.75rem;
        font-size: 0.9rem;
    }

    .package-summary-card .price {
        font-size: 1.2rem;
    }

    /* Summary cards */
    .summary-details p {
        font-size: 0.9rem;
        margin-bottom: 0.5rem;
    }

    /* Terms table */
    .terms-content .table {
        font-size: 0.8rem;
    }

    .terms-content .table th,
    .terms-content .table td {
        padding: 0.5rem;
    }

    /* Payment summary */
    .payment-details p {
        font-size: 0.9rem;
    }

    /* FAQ accordion */
    .accordion-button {
        font-size: 0.9rem;
        padding: 0.75rem 1rem;
    }

    .accordion-body {
        font-size: 0.85rem;
        padding: 0.75rem 1rem;
    }

    /* Assistance cards */
    .booking-assistance .assistance-card {
        padding: 1.25rem 1rem;
        margin-bottom: 1rem;
    }

    .assistance-icon {
        width: 60px;
        height: 60px;
    }

    .assistance-icon i {
        font-size: 1.5rem;
    }
}

/* --- Print-friendly --- */
@media print {
    .navbar, .back-to-top, footer,
    .floating-enquiry-btn, .floating-elements {
        display: none !important;
    }

    section {
        padding: 20px 0;
    }
}
