/* ============================================================
   LOUIS PHOTOGRAPHY — Mobile Stylesheet
   Loaded on top of style.css for screens under 768px
   ============================================================ */

/* ── NAV MOBILE ── */
@media (max-width: 768px) {
  .site-nav {
    padding: 18px 24px !important;
  }
  .site-nav.scrolled {
    padding: 14px 24px !important;
  }
  .nav-links {
    display: none !important;
  }
  .nav-hamburger {
    display: flex !important;
  }
  .nav-wordmark {
    font-size: 18px !important;
    letter-spacing: 0.3em !important;
  }
  .nav-cta {
    display: none !important; /* hide on mobile, use hamburger menu instead */
  }
  .mobile-menu a {
    font-size: 32px !important;
    gap: 28px;
  }
}

/* ── PAGE HERO MOBILE ── */
@media (max-width: 768px) {
  .page-hero {
    height: 52vh !important;
    min-height: 300px !important;
  }
  .page-hero-content {
    padding: 0 24px 36px !important;
  }
  .page-hl {
    font-size: clamp(36px, 9vw, 52px) !important;
    line-height: 1.05 !important;
  }
  .page-hero-content .eyebrow {
    margin-bottom: 8px !important;
  }
}

/* ── GLOBAL SECTION PADDING MOBILE ── */
@media (max-width: 768px) {
  .section {
    padding: 56px 24px !important;
  }
  .section-alt {
    padding: 56px 24px !important;
  }
  .press-bar {
    padding: 16px 24px !important;
    gap: 16px !important;
    flex-wrap: wrap !important;
  }
  .press-logos {
    gap: 20px !important;
    flex-wrap: wrap !important;
  }
  .plogo.serif-it { font-size: 14px !important; }
  .plogo.caps-sm { font-size: 8px !important; }
  .plogo.italic-med { font-size: 12px !important; }
}

/* ── TYPOGRAPHY MOBILE ── */
@media (max-width: 768px) {
  .sec-hl {
    font-size: clamp(28px, 7vw, 38px) !important;
  }
  .body-text {
    font-size: 14px !important;
    line-height: 1.82 !important;
  }
  .eyebrow {
    font-size: 8.5px !important;
  }
  .q-text {
    font-size: 18px !important;
    padding: 0 !important;
  }
}

/* ── QUOTE BLOCK MOBILE ── */
@media (max-width: 768px) {
  .quote-block {
    padding: 52px 24px !important;
  }
  .qmark {
    font-size: 64px !important;
  }
}

/* ── PROCESS SECTION MOBILE ── */
@media (max-width: 768px) {
  .process-sec {
    padding: 56px 24px !important;
  }
  .proc-hl {
    font-size: clamp(26px, 6vw, 36px) !important;
    margin-bottom: 44px !important;
  }
  .steps {
    grid-template-columns: 1fr 1fr !important;
    gap: 24px !important;
  }
  .step-num {
    font-size: 40px !important;
  }
  .step-body {
    font-size: 12.5px !important;
  }
}

/* ── TESTIMONIALS MOBILE ── */
@media (max-width: 768px) {
  .t-strip, .testimonial-strip {
    grid-template-columns: 1fr !important;
  }
  .t-card, .testimonial-card {
    padding: 36px 24px !important;
  }
  .t-quote, .q-text-sm {
    font-size: 16px !important;
  }
}

/* ── TESTIMONIAL INLINE MOBILE ── */
@media (max-width: 768px) {
  .testimonial-inline {
    grid-template-columns: 1fr !important;
    padding: 48px 24px !important;
    gap: 32px !important;
  }
  .test-img {
    width: 100% !important;
    height: 260px !important;
  }
}

/* ── CTA SECTION MOBILE ── */
@media (max-width: 768px) {
  .cta-section {
    padding: 64px 24px !important;
  }
  .cta-hl {
    font-size: clamp(28px, 7vw, 40px) !important;
  }
  .cta-sub {
    font-size: 13px !important;
  }
  .cta-section > div {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 10px !important;
  }
  .btn-dark, .btn-outline, .btn-light {
    display: block !important;
    width: 100% !important;
    max-width: 320px !important;
    text-align: center !important;
    margin: 0 !important;
    padding: 16px 20px !important;
  }
}

/* ── INSTAGRAM STRIP MOBILE ── */
@media (max-width: 768px) {
  .insta-strip {
    padding: 44px 24px !important;
  }
  .insta-grid {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 3px !important;
  }
}

/* ── FOOTER MOBILE ── */
@media (max-width: 768px) {
  .site-footer {
    padding: 44px 24px 24px !important;
  }
  .footer-top {
    flex-direction: column !important;
    gap: 36px !important;
    margin-bottom: 36px !important;
    padding-bottom: 36px !important;
  }
  .footer-wordmark {
    font-size: 22px !important;
    letter-spacing: 0.3em !important;
  }
  .footer-cols {
    gap: 32px !important;
  }
  .footer-btm {
    flex-direction: column !important;
    gap: 8px !important;
    text-align: center !important;
  }
  .footer-top > div:first-child > div {
    flex-direction: column !important;
  }
  .footer-top > div:first-child a {
    width: 100% !important;
    max-width: 280px !important;
    text-align: center !important;
    margin: 0 0 8px !important;
  }
}

/* ── HOME HERO MOBILE ── */
@media (max-width: 768px) {
  .hero {
    min-height: 100svh !important;
  }
  .hero-content {
    padding: 0 24px 48px !important;
  }
  .hero-inner {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 24px !important;
  }
  .hero-hl {
    font-size: clamp(42px, 10vw, 62px) !important;
  }
  .hero-hl + p {
    font-size: 11px !important;
    max-width: 100% !important;
  }
  .hero-right {
    align-items: flex-start !important;
  }
  .hero-sub {
    text-align: left !important;
    font-size: 9px !important;
  }
  .hero-btns {
    align-items: flex-start !important;
  }
  .hero-btns .btn-light {
    font-size: 9px !important;
    padding: 13px 24px !important;
    width: auto !important;
    max-width: none !important;
  }
}

/* ── INTRO GRID MOBILE ── */
@media (max-width: 768px) {
  .intro-grid {
    grid-template-columns: 1fr !important;
    gap: 36px !important;
  }
  .intro-img {
    height: 300px !important;
  }
  .accent-box {
    display: none !important;
  }
  .intro-grid > div:first-child > div[style*="display:flex"] {
    flex-direction: column !important;
    align-items: flex-start !important;
  }
}

/* ── WHY GRID MOBILE ── */
@media (max-width: 768px) {
  .why-grid {
    grid-template-columns: 1fr !important;
    gap: 2px !important;
  }
  .why-item {
    padding: 28px 20px !important;
  }
}

/* ── GALLERY STRIP MOBILE ── */
@media (max-width: 768px) {
  .gallery-wrap {
    padding: 0 24px 56px !important;
  }
  .gallery-strip {
    grid-template-columns: 1fr 1fr !important;
    grid-template-rows: 180px 180px !important;
    height: auto !important;
    gap: 4px !important;
  }
}

/* ── BOOKING PATHS MOBILE ── */
@media (max-width: 768px) {
  .booking-paths {
    grid-template-columns: 1fr !important;
    gap: 2px !important;
  }
  .path-card {
    min-height: 320px !important;
    padding: 44px 24px !important;
  }
  .path-hl {
    font-size: 26px !important;
  }
  .path-btns {
    flex-direction: column !important;
    align-items: flex-start !important;
  }
  .path-btns .btn-light {
    width: auto !important;
    max-width: none !important;
  }
}

/* ── ABOUT PAGE MOBILE ── */
@media (max-width: 768px) {
  .about-grid {
    grid-template-columns: 1fr !important;
    gap: 36px !important;
  }
  .about-img {
    height: 320px !important;
  }
  .about-img-float {
    display: none !important;
  }
  .about-img-wrap {
    padding-bottom: 0 !important;
  }
  .values-grid {
    grid-template-columns: 1fr !important;
    gap: 2px !important;
  }
  .value-item {
    padding: 28px 20px !important;
  }
  .team-grid {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }
  .team-img {
    height: 320px !important;
  }
  .about-feature {
    grid-template-columns: 1fr !important;
  }
  .about-feature-content {
    padding: 44px 24px !important;
  }
  .about-feature-img {
    height: 300px !important;
  }
}

/* ── WEDDINGS PAGE MOBILE ── */
@media (max-width: 768px) {
  .weddings-intro {
    grid-template-columns: 1fr !important;
    gap: 36px !important;
  }
  .weddings-img {
    height: 280px !important;
  }
  .coverage-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 2px !important;
  }
  .coverage-item {
    padding: 24px 18px !important;
  }
  .who-grid {
    grid-template-columns: 1fr !important;
  }
  .who-img {
    height: 280px !important;
  }
  .who-content {
    padding: 40px 24px !important;
  }
  .venues-strip {
    grid-template-columns: 1fr 1fr !important;
    height: auto !important;
    gap: 4px !important;
  }
  .venue-item {
    height: 160px !important;
  }
}

/* ── COLLECTIONS MOBILE ── */
@media (max-width: 768px) {
  .pkg-grid {
    grid-template-columns: 1fr !important;
    gap: 2px !important;
    margin-top: 32px !important;
  }
  .pkg {
    padding: 36px 24px !important;
  }
  .ew-grid {
    grid-template-columns: 1fr !important;
  }
  .ew-img {
    height: 280px !important;
  }
  .ew-content {
    padding: 44px 24px !important;
  }
  .addons-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 2px !important;
  }
  .addon {
    padding: 22px 18px !important;
  }
  .video-grid {
    grid-template-columns: 1fr !important;
  }
  .video-img {
    height: 260px !important;
  }
  .video-content {
    padding: 44px 24px !important;
  }
  .faq-list {
    max-width: 100% !important;
  }
  .faq-q-text {
    font-size: 14px !important;
  }
}

/* ── PORTRAITS MOBILE ── */
@media (max-width: 768px) {
  .portrait-intro-grid {
    grid-template-columns: 1fr !important;
    gap: 36px !important;
  }
  .portrait-intro-img {
    height: 280px !important;
  }
  .portrait-types {
    grid-template-columns: 1fr !important;
  }
  .portrait-type {
    height: 320px !important;
  }
}

/* ── CONTACT / RESERVE MOBILE ── */
@media (max-width: 768px) {
  .contact-grid {
    grid-template-columns: 1fr !important;
    gap: 44px !important;
  }
  .contact-img {
    height: 200px !important;
  }
  .form-row {
    grid-template-columns: 1fr !important;
  }
  .form-submit {
    width: 100% !important;
    text-align: center !important;
    padding: 16px 20px !important;
  }
  .direct-book-box .btn-dark {
    width: 100% !important;
    text-align: center !important;
  }
}

/* ── PORTRAIT BOOKING MOBILE ── */
@media (max-width: 768px) {
  .portrait-booking-grid {
    grid-template-columns: 1fr !important;
    gap: 44px !important;
  }
  .portrait-info-img {
    height: 200px !important;
  }
  .wedding-cta-box {
    padding: 24px !important;
  }
}

/* ── WEDDING STORIES MOBILE ── */
@media (max-width: 768px) {
  .story-card {
    grid-template-columns: 1fr !important;
    direction: ltr !important;
  }
  .story-card:nth-child(even) {
    direction: ltr !important;
  }
  .story-img {
    min-height: 260px !important;
    height: 260px !important;
  }
  .story-content {
    padding: 36px 24px !important;
  }
  .story-names {
    font-size: 30px !important;
  }
}

/* ── SMALL SCREEN TWEAKS (under 400px) ── */
@media (max-width: 400px) {
  .hero-hl {
    font-size: 36px !important;
  }
  .steps {
    grid-template-columns: 1fr !important;
  }
  .insta-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .coverage-grid {
    grid-template-columns: 1fr !important;
  }
  .addons-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ── TOUCH TARGETS ── */
@media (max-width: 768px) {
  .text-link {
    padding: 4px 0 !important;
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
  }
  .nav-hamburger span {
    width: 26px !important;
    height: 1px !important;
  }
  .mobile-menu-close {
    padding: 12px !important;
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
  }
}

/* ── SAFE AREA FOR NOTCHED PHONES ── */
@media (max-width: 768px) {
  .site-nav {
    padding-top: max(18px, env(safe-area-inset-top)) !important;
  }
  body {
    padding-bottom: env(safe-area-inset-bottom);
  }
}
