/* ═══════════════════════════════════════════════════════════
   RESPONSIVE — Comprehensive Mobile / Tablet / Desktop
   ═══════════════════════════════════════════════════════════ */

/* ── Hide custom cursor on touch devices ── */
@media (hover: none), (pointer: coarse) {
    .cursor, .cursor__dot, .cursor__outline { display: none !important; }
}

/* ──────────────────────────────────────────────────────────
   MAX 1200px — Large tablets / small laptops
   ────────────────────────────────────────────────────────── */
@media (max-width: 1200px) {
    .footer__top { grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 32px; }
    .container { padding-left: 24px; padding-right: 24px; }
}

/* ──────────────────────────────────────────────────────────
   MAX 1024px — Tablets
   ────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
    .hero__content { justify-content: center; }
    .hero__text { text-align: center; max-width: 700px; }
    .hero__ctas { justify-content: center; }
    .hero__description { max-width: 100%; margin-left: auto; margin-right: auto; }
    .hero__socials { flex-direction: row; bottom: 40px; right: auto; left: 50%; transform: translateX(-50%); }
    .hero__scroll { display: none; }

    .identity__grid { grid-template-columns: 1fr; gap: 48px; }
    .identity__content .section-title { text-align: center; }
    .identity__content { text-align: center; }
    .identity__image-accent { display: none; }

    .footer__top { grid-template-columns: 1fr 1fr; gap: 40px; }
    .nav__cta { display: none; }

    /* Gallery page */
    .gallery-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 12px; }
    .social-feed-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 12px; }
    
    /* Reviews page */
    .reviews-stats { flex-wrap: wrap; gap: 1rem; }
    .reviews-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 16px; }
}

/* ──────────────────────────────────────────────────────────
   MAX 768px — Small tablets / large phones
   ────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
    :root { --section-padding: clamp(48px, 6vw, 80px); }
    .container { padding-left: 20px; padding-right: 20px; }

    /* Nav */
    .nav__menu { display: none; }
    .nav__toggle { display: flex; }

    /* Hero */
    .hero__title span { font-size: clamp(2.5rem, 10vw, 4rem); }
    .hero__subtitle { font-size: clamp(0.9rem, 2.5vw, 1.15rem); }

    /* Authority strip */
    .authority__grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
    .authority__item:nth-child(2)::after { display: none; }

    /* Domains */
    .domains__grid { grid-template-columns: 1fr; gap: 20px; }
    .domain-card { aspect-ratio: 16 / 10; }
    .domain-card__link { opacity: 1; transform: translateY(0); }

    /* Showcase / Videos */
    .showcase__grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }

    /* Form */
    .form-row { grid-template-columns: 1fr; }

    /* Footer */
    .footer__top { grid-template-columns: 1fr; gap: 32px; }
    .footer__bottom { flex-direction: column-reverse; gap: 16px; text-align: center; }

    /* Testimonials */
    .testimonials__track { min-height: 300px; }
    .testimonial-card__quote p { font-size: 1.05rem; line-height: 1.65; }

    /* Gallery page */
    .gallery-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 10px; }
    .gallery-filters { flex-wrap: wrap; justify-content: center; gap: 6px; }
    .social-feed-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 10px; }

    /* Reviews page */
    .reviews-grid { grid-template-columns: 1fr !important; }
    .review-featured__inner { padding: 2rem 1.5rem; }
    .review-card { padding: 1.5rem; }
    .reviews-filters { flex-wrap: wrap; justify-content: center; gap: 6px; }

    /* Lightbox */
    .lightbox__content { width: 95vw; max-height: 90vh; }
    .lightbox__nav { padding: 0 8px; }

    /* CTA / Contact */
    .cta-final__form-wrap { padding: 0; }

    /* Subpages (weddings, corporate, concerts) */
    .page-hero__title { font-size: clamp(2rem, 8vw, 3.5rem); }
    .page-hero__subtitle { font-size: 0.95rem; }
    .page-content__grid { grid-template-columns: 1fr !important; }

    /* Section titles */
    .section-title { font-size: clamp(1.75rem, 5vw, 2.75rem); }
}

/* ──────────────────────────────────────────────────────────
   MAX 480px — Mobile phones
   ────────────────────────────────────────────────────────── */
@media (max-width: 480px) {
    :root { --section-padding: clamp(40px, 5vw, 60px); }
    .container { padding-left: 16px; padding-right: 16px; }

    .hero__preheading { font-size: 0.65rem; }
    .hero__subtitle { font-size: 1rem; }
    .hero__ctas { flex-direction: column; }
    .hero__ctas .btn { width: 100%; justify-content: center; }

    .authority__grid { grid-template-columns: repeat(2, 1fr); }
    .authority__item::after { display: none !important; }

    .positioning__line { font-size: 1.2rem; }
    .positioning__tags { gap: 8px; }
    .tag { padding: 6px 16px; font-size: 0.7rem; }

    .showcase__grid { grid-template-columns: 1fr; }
    .showcase__filters { gap: 6px; flex-wrap: wrap; justify-content: center; }
    .showcase__filter { font-size: 0.7rem; padding: 6px 14px; }

    .project__scroll-item { flex: 0 0 260px; }
    .domain-card__content { padding: 24px; }

    .testimonials__track { min-height: 350px; }
    .testimonial-card__quote p { font-size: 1rem; }

    /* Gallery page mobile */
    .gallery-grid { grid-template-columns: 1fr !important; gap: 10px; }
    .social-feed-grid { grid-template-columns: 1fr !important; gap: 10px; }
    .gallery-item__overlay { opacity: 1; background: linear-gradient(transparent 50%, rgba(0,0,0,0.7)); }
    .gallery-item__title { font-size: 0.85rem; }

    /* Reviews page mobile */
    .review-featured__text { font-size: 1rem; }
    .reviews-stats__item { min-width: 100px; }
    .reviews-stats { gap: 0.75rem; }
    .review-form { padding: 1.5rem; }

    /* Footer mobile */
    .footer__col { text-align: center; }
    .footer__socials { justify-content: center; }

    /* Buttons */
    .btn { padding: 12px 24px; font-size: 0.85rem; }
    .btn--lg { padding: 14px 28px; }
}

/* ──────────────────────────────────────────────────────────
   MAX 360px — Very small screens
   ────────────────────────────────────────────────────────── */
@media (max-width: 360px) {
    .authority__grid { grid-template-columns: 1fr 1fr; }
    .authority__number { font-size: 1.4rem; }
    .authority__label { font-size: 0.65rem; }
    .hero__title span { font-size: 2.2rem; }
    .section-title { font-size: 1.5rem; }
    .nav__logo-full { display: none; }
}

/* ── Landscape Phone ── */
@media (max-height: 500px) and (orientation: landscape) {
    .hero { min-height: auto; padding: 60px 0; }
    .hero__title span { font-size: 2.5rem; }
    .hero__description { display: none; }
    .loader { display: none; }
}
