/* 
   Shagun – The Bridal Collection
   Complete Mobile & Multi-Device Responsive Stylesheet
*/

/* --- Prevent Horizontal Scrolling Globally --- */
html, body {
    max-width: 100%;
    overflow-x: hidden;
}

img, video, iframe {
    max-width: 100%;
}

/* --- Large Laptops & Desktops (Under 1400px) --- */
@media (max-width: 1400px) {
    header.main-header {
        padding: 20px 5%;
    }
    header.main-header.scrolled {
        padding: 12px 5%;
    }
    section {
        padding: 80px 5%;
    }
    .hero-title {
        font-size: 3.8rem;
    }
    nav.nav-menu ul {
        gap: 30px;
    }
    nav.nav-menu ul li a {
        font-size: 1.05rem;
    }
}

/* --- Laptops & Small Desktops (Under 1200px) --- */
@media (max-width: 1200px) {
    .hero-title {
        font-size: 3.4rem;
    }
    .grid-4 {
        grid-template-columns: repeat(3, 1fr);
        gap: 25px;
    }
    .grid-3 {
        grid-template-columns: repeat(2, 1fr);
        gap: 30px;
    }
    .card-luxury-img {
        height: 440px;
    }
    .story-img-frame, .founder-img-frame {
        height: 480px;
    }
}

/* --- Tablets & iPad Landscape (Under 992px) --- */
@media (max-width: 992px) {
    .custom-cursor, .custom-cursor-dot {
        display: none !important; /* Disable custom cursor on touch devices */
    }
    
    section {
        padding: 70px 5%;
    }
    
    .hero-title {
        font-size: 3rem;
    }
    
    .grid-4 {
        grid-template-columns: repeat(2, 1fr);
        gap: 25px;
    }
    
    .grid-3 {
        grid-template-columns: repeat(2, 1fr);
        gap: 25px;
    }
    
    .grid-2 {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    
    .map-form-split {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    
    .contact-details-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }
    
    .footer-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 35px;
    }

    .story-section {
        padding: 60px 5%;
    }

    .story-section .grid-2 {
        grid-template-columns: 1fr;
        gap: 35px;
    }

    .story-img-frame {
        height: 440px;
        width: 100%;
    }

    .story-content-wrap {
        padding-right: 0;
    }

    .founder-img-frame {
        height: 450px;
    }
    
    .details-modal-card, .booking-modal-card {
        width: 90vw;
        padding: 35px 25px;
        max-height: 85vh;
        overflow-y: auto;
    }
}

/* --- iPad Portrait & Small Tablets (Under 768px) --- */
@media (max-width: 768px) {
    header.main-header {
        padding: 15px 5%;
    }
    
    header.main-header.scrolled {
        padding: 10px 5%;
    }
    
    .logo-img {
        height: 75px;
        max-width: 220px;
    }

    header.main-header.scrolled .logo-img {
        height: 60px;
    }
    
    /* Navigation Bar */
    nav.nav-menu, .nav-cta {
        display: none;
    }
    
    .mobile-menu-toggle {
        display: flex;
    }
    
    section {
        padding: 55px 5%;
    }
    
    .section-header {
        margin-bottom: 35px;
    }
    
    h2 {
        font-size: 2rem;
    }
    
    .hero-title {
        font-size: 2.6rem;
    }
    
    .hero-subtitle {
        font-size: 1.1rem;
        letter-spacing: 0.18em;
    }
    
    .hero-desc {
        font-size: 0.95rem;
        margin-bottom: 25px;
    }

    .hero-section {
        height: 55vh;
        min-height: 380px;
    }
    
    .grid-2 {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    
    .card-luxury-img {
        height: 400px;
    }
    
    .story-section {
        padding: 45px 5%;
    }

    .story-img-frame {
        height: 360px;
        border-radius: 16px;
    }

    .story-content-wrap h2 {
        font-size: 1.8rem;
        line-height: 1.3;
        margin-bottom: 16px;
    }

    .story-content-wrap p {
        font-size: 0.95rem;
        line-height: 1.6;
        margin-bottom: 14px;
    }

    .story-content-wrap .btn-luxury {
        width: 100%;
        text-align: center;
        margin-top: 10px;
    }
    
    .founder-card {
        padding: 30px 22px;
    }
    
    .founder-img-frame {
        height: 400px;
    }

    .badge-glass {
        padding: 10px 18px;
        font-size: 0.75rem;
        bottom: 15px;
        right: 15px;
    }
    
    /* Horizontal Timeline to Vertical Conversion */
    .timeline-line {
        left: 20px;
        top: 0;
        bottom: 0;
        width: 2px;
        height: 100%;
        transform: none;
    }
    
    .timeline-progress {
        left: 20px;
        top: 0;
        width: 2px;
        height: 0%;
        transform: none;
    }
    
    .timeline-items {
        flex-direction: column;
        gap: 35px;
        align-items: flex-start;
        padding-left: 5px;
    }
    
    .timeline-item {
        width: 100%;
        display: flex;
        align-items: flex-start;
        text-align: left;
        gap: 18px;
    }
    
    .timeline-node {
        margin: 0;
        flex-shrink: 0;
        width: 40px;
        height: 40px;
        font-size: 0.9rem;
    }
    
    .timeline-content {
        display: flex;
        flex-direction: column;
    }
    
    /* Testimonials */
    .testimonial-card {
        padding: 30px 20px;
    }
    
    .testimonial-quote {
        font-size: 1.1rem;
    }
    
    /* Newsletter */
    .newsletter-card {
        flex-direction: column;
        padding: 35px 20px;
        text-align: center;
    }
    
    .newsletter-form {
        width: 100%;
        flex-direction: column;
    }
    
    .newsletter-input {
        width: 100%;
    }
    
    .booking-modal-card, .details-modal-card {
        padding: 28px 18px;
        border-radius: 16px;
        width: 92vw;
        max-height: 88vh;
        overflow-y: auto;
    }

    .details-modal-img {
        height: 280px;
        max-height: 38vh;
    }
}

/* --- Mobile Devices & iPhones (Under 480px) --- */
@media (max-width: 480px) {
    header.main-header {
        padding: 12px 4%;
    }

    .logo-img {
        height: 65px;
        max-width: 200px;
    }

    header.main-header.scrolled .logo-img {
        height: 52px;
    }

    .footer-logo-img {
        height: 95px;
    }
    
    .hero-title {
        font-size: 2.1rem;
    }
    
    .hero-subtitle {
        font-size: 0.95rem;
        letter-spacing: 0.15rem;
    }

    .hero-section {
        height: 50vh;
        min-height: 340px;
    }
    
    .hero-cta {
        flex-direction: column;
        gap: 12px;
        width: 100%;
        padding: 0 5%;
    }
    
    .btn-luxury, .btn-luxury-outline {
        width: 100%;
        text-align: center;
        padding: 12px 18px;
        font-size: 0.8rem;
    }
    
    .grid-3, .grid-4, .contact-details-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    
    .card-luxury-img {
        height: 360px;
    }
    
    .story-section {
        padding: 35px 4%;
    }

    .story-img-frame {
        height: 300px;
        border-radius: 14px;
    }

    .story-content-wrap h2 {
        font-size: 1.5rem;
        line-height: 1.3;
        margin-bottom: 14px;
    }

    .story-content-wrap p {
        font-size: 0.9rem;
        line-height: 1.55;
        margin-bottom: 12px;
    }
    
    .founder-card {
        padding: 25px 18px;
    }
    
    .founder-title {
        font-size: 1.4rem;
    }
    
    .founder-img-frame {
        height: 350px;
    }
    
    .masonry-gallery {
        columns: 1;
    }

    .contact-map-container iframe {
        height: 300px;
    }
    
    .footer-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    
    .footer-bottom {
        flex-direction: column;
        gap: 12px;
        text-align: center;
    }

    .whatsapp-floating {
        bottom: 20px;
        right: 20px;
        width: 52px;
        height: 52px;
        font-size: 1.7rem;
    }

    .mobile-nav-menu ul li a {
        font-size: 1.6rem;
    }
}

/* --- Small Mobile Phones (Under 360px) --- */
@media (max-width: 360px) {
    .logo-img {
        height: 55px;
        max-width: 170px;
    }
    .hero-title {
        font-size: 1.8rem;
    }
    .card-luxury-img, .story-img-frame, .founder-img-frame {
        height: 260px;
    }
    .booking-modal-card, .details-modal-card {
        padding: 22px 14px;
    }
}
