/* =======================================================
   SPIRITUAL OASIS — COMPREHENSIVE MOBILE RESPONSIVE CSS
   Covers: All pages & sections
   Breakpoints:
     • 1024px  — large tablet / small laptop
     •  768px  — tablet (landscape / portrait)
     •  576px  — large mobile
     •  400px  — small mobile
   ======================================================= */

/* ─────────────────────────────────────────────
   1. GLOBAL HELPERS
───────────────────────────────────────────── */
@media (max-width: 768px) {
  .container {
    padding: 0 16px;
  }

  .section {
    padding: 60px 0;
  }

  h1 { font-size: 2rem; }
  h2 { font-size: 1.7rem; }
  h3 { font-size: 1.3rem; }

  .section-title h2 {
    font-size: 1.8rem;
  }
}

@media (max-width: 576px) {
  .container {
    padding: 0 14px;
  }

  .section {
    padding: 50px 0;
  }

  h1 { font-size: 1.75rem; }
  h2 { font-size: 1.5rem; }
  h3 { font-size: 1.15rem; }

  .section-title h2 {
    font-size: 1.5rem;
  }

  .section-title {
    margin-bottom: 30px;
  }
}


/* ─────────────────────────────────────────────
   2. NAVIGATION / HEADER
───────────────────────────────────────────── */
@media (max-width: 991px) {
  /* Already handled in components.css — extending */
  .nav-menu {
    gap: 20px;
    padding: 80px 30px 40px;
  }

  .logo {
    font-size: 1.4rem;
  }

  .mobile-menu-btn {
    font-size: 1.8rem;
  }
}

@media (max-width: 576px) {
  .logo {
    font-size: 1.2rem;
  }
}


/* ─────────────────────────────────────────────
   3. HERO SECTION (index.html)
───────────────────────────────────────────── */
.hero-content {
  max-width: 100%;
  padding: 0 20px;
}

@media (max-width: 1024px) {
  .hero-content {
    top: 80px;
  }

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

@media (max-width: 768px) {
  .hero-content {
    top: 60px;
    padding: 0 20px;
  }

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

  .hero p {
    font-size: 1rem;
    /* remove hard-coded <br> effect */
  }

  .hero p br {
    display: none;
  }
}

@media (max-width: 576px) {
  .hero-content {
    top: 50px;
  }

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

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

  .hero-btns {
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }

  .hero-btns .btn {
    width: 100%;
    max-width: 280px;
    justify-content: center;
  }
}


/* ─────────────────────────────────────────────
   4. PAGE HEADER (inner pages hero banner)
───────────────────────────────────────────── */
.page-header-content {
  padding: 0 20px;
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
}

@media (max-width: 1024px) {
  .page-header-content {
    top: 10%;
  }

  .page-header h1 {
    font-size: 2.4rem;
  }
}

@media (max-width: 768px) {
  .page-header {
    min-height: 60vh;
    height: auto !important;
    padding: 120px 20px 60px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .page-header-content {
    position: static;
    top: unset;
  }

  .page-header h1 {
    font-size: 2rem;
    line-height: 1.3;
  }

  .page-header .hero-btns {
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }
}

@media (max-width: 576px) {
  .page-header h1 {
    font-size: 1.6rem;
  }

  .page-header p {
    font-size: 0.95rem;
  }

  .page-header .hero-btns .btn {
    width: 100%;
    max-width: 260px;
    justify-content: center;
  }
}


/* ─────────────────────────────────────────────
   5. DESTINATION PAGE HERO BANNER (.hero-banner)
───────────────────────────────────────────── */
@media (max-width: 1024px) {
  .hero-banner h1 {
    font-size: 2.4rem;
  }
}

@media (max-width: 768px) {
  .hero-banner {
    min-height: 70vh;
    padding: 100px 20px 50px;
  }

  .hero-banner h1 {
    font-size: 1.9rem;
    line-height: 1.3;
  }

  .hero-banner p {
    font-size: 1rem;
  }

  .hero-banner .btn {
    padding: 12px 24px;
    font-size: 0.95rem;
  }
}

@media (max-width: 576px) {
  .hero-banner {
    min-height: 60vh;
    padding: 90px 16px 40px;
  }

  .hero-banner h1 {
    font-size: 1.6rem;
  }

  .hero-banner p {
    font-size: 0.9rem;
  }
}


/* ─────────────────────────────────────────────
   6. DESTINATION TEMPLATE PAGE HEADER
      (.page-header with inline height:100vh)
───────────────────────────────────────────── */
@media (max-width: 768px) {
  /* Override inline height for destination detail pages */
  .page-header[style*="height: 100vh"],
  .page-header[style*="height:100vh"] {
    height: auto !important;
    min-height: 70vh;
    padding: 120px 20px 60px;
    align-items: center;
  }

  .page-header-content p[style*="margin-left"] {
    margin-left: 0 !important;
    margin-right: 0 !important;
    font-size: 1rem !important;
  }

  .page-header-content h1[style*="font-size: 4rem"],
  .page-header-content h1[style*="font-size:4rem"] {
    font-size: 2rem !important;
  }
}

@media (max-width: 576px) {
  .page-header[style*="height: 100vh"],
  .page-header[style*="height:100vh"] {
    min-height: 60vh;
    padding: 100px 16px 50px;
  }

  .page-header-content h1[style*="font-size: 4rem"],
  .page-header-content h1[style*="font-size:4rem"] {
    font-size: 1.6rem !important;
  }

  .page-header-content p[style*="font-size: 1.3rem"] {
    font-size: 0.95rem !important;
  }
}


/* ─────────────────────────────────────────────
   7. CARD GRID (Why Choose Us, Featured Destinations)
───────────────────────────────────────────── */
@media (max-width: 768px) {
  .card-grid {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 20px;
    padding: 10px;
  }
}

@media (max-width: 576px) {
  .card-grid {
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 8px;
  }

  .card-img-wrapper {
    height: 200px;
  }
}


/* ─────────────────────────────────────────────
   8. MEET YOUR GUIDE SECTION (flex layout)
───────────────────────────────────────────── */
/* index.html and about.html both use inline flex */
@media (max-width: 768px) {
  /* target the inline flex containers used in guide sections */
  .section > .container > div[style*="display: flex"],
  .section > .container > div[style*="display:flex"] {
    flex-direction: column;
    gap: 30px !important;
  }

  .section > .container > div[style*="display: flex"] > div[style*="flex: 1"],
  .section > .container > div[style*="display: flex"] > div[style*="flex: 2"] {
    min-width: 100% !important;
    flex: 1 1 100% !important;
  }

  .section > .container > div[style*="display: flex"] h2[style*="font-size: 2.5rem"] {
    font-size: 1.7rem !important;
  }
}


/* ─────────────────────────────────────────────
   9. EXPERIENCE SECTION
───────────────────────────────────────────── */
@media (max-width: 992px) {
  .experience-section {
    padding: 70px 5%;
  }

  .experience-container {
    grid-template-columns: 1fr;
    gap: 50px;
  }

  .experience-content {
    text-align: center;
  }

  .experience-content h2 {
    font-size: 2rem;
  }
}

@media (max-width: 576px) {
  .experience-section {
    padding: 60px 16px;
  }

  .experience-container {
    gap: 35px;
  }

  .experience-content h2 {
    font-size: 1.7rem;
  }

  .experience-content p {
    font-size: 0.95rem;
  }

  .experience-gallery {
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }

  .experience-card {
    height: 160px;
  }

  .experience-overlay h3 {
    font-size: 14px;
    padding: 12px;
  }

  .experience-btn {
    display: inline-flex;
    margin: 0 auto;
    padding: 14px 24px;
  }
}

@media (max-width: 400px) {
  .experience-gallery {
    grid-template-columns: 1fr;
  }

  .experience-card {
    height: 200px;
  }
}


/* ─────────────────────────────────────────────
   10. TESTIMONIAL SECTION
───────────────────────────────────────────── */
@media (max-width: 992px) {
  .testimonial-section {
    padding: 70px 5%;
  }

  .testimonial-container {
    grid-template-columns: 1fr;
    gap: 50px;
  }

  .testimonial-content {
    text-align: center;
  }

  .testimonial-content h2 {
    font-size: 2rem;
  }

  .testimonial-nav {
    justify-content: center;
  }

  .testimonial-slider {
    height: 400px;
  }
}

@media (max-width: 576px) {
  .testimonial-section {
    padding: 60px 16px;
  }

  .testimonial-slider {
    height: auto;
    min-height: 360px;
  }

  .testimonial-card {
    padding: 24px 20px;
  }

  .testimonial-content h2 {
    font-size: 1.7rem;
  }

  .testimonial-text {
    font-size: 0.95rem;
    margin-bottom: 24px;
  }

  .testimonial-user img {
    width: 55px;
    height: 55px;
  }
}


/* ─────────────────────────────────────────────
   11. VALUES SECTION
───────────────────────────────────────────── */
@media (max-width: 992px) {
  .values-section {
    padding: 70px 5%;
  }

  .values-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .values-heading h2 {
    font-size: 2.2rem;
  }
}

@media (max-width: 576px) {
  .values-section {
    padding: 60px 16px;
  }

  .values-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .values-card {
    padding: 30px 20px;
  }

  .values-heading h2 {
    font-size: 1.7rem;
  }

  .values-heading p {
    font-size: 0.95rem;
  }
}


/* ─────────────────────────────────────────────
   12. DESTINATIONS PAGE — DEST CARD GRID
───────────────────────────────────────────── */
@media (max-width: 768px) {
  .dest-card-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}

@media (max-width: 576px) {
  .dest-card-grid {
    gap: 18px;
  }

  .dest-card-img-wrapper {
    height: 200px;
  }

  .dest-card-title {
    font-size: 1.2rem;
  }

  .dest-card-text {
    font-size: 0.9rem;
  }

  .intro-section {
    padding: 50px 0;
  }

  .intro-section h2 {
    font-size: 1.6rem;
    padding: 0 16px;
  }

  .intro-section p {
    font-size: 0.95rem;
    padding: 0 16px;
  }
}


/* ─────────────────────────────────────────────
   13. DESTINATION DETAIL PAGES (timeline section)
───────────────────────────────────────────── */
@media (max-width: 768px) {
  .timeline-section {
    padding: 70px 5%;
  }

  .parsection-title h1 {
    font-size: 2rem;
    line-height: 1.3;
  }

  .parsection-title {
    margin-bottom: 60px;
  }

  .timeline::before {
    left: 20px;
  }

  .timeline-item,
  .timeline-item.reverse {
    grid-template-columns: 50px 1fr;
    gap: 20px;
    margin: 50px 0;
  }

  .timeline-center {
    grid-column: 1;
    grid-row: 1;
  }

  .timeline-image,
  .timeline-content {
    grid-column: 2;
    order: unset !important;
  }

  .timeline-image img {
    height: 220px;
  }

  .timeline-content {
    padding: 24px 20px;
  }

  .timeline-content h3 {
    font-size: 1.2rem;
  }
}

@media (max-width: 576px) {
  .timeline-section {
    padding: 60px 16px;
  }

  .parsection-title h1 {
    font-size: 1.6rem;
  }

  .timeline::before {
    left: 16px;
  }

  .timeline-item,
  .timeline-item.reverse {
    grid-template-columns: 40px 1fr;
    gap: 16px;
    margin: 40px 0;
  }

  .timeline-image img {
    height: 180px;
  }

  .timeline-content {
    padding: 20px 16px;
  }
}


/* ─────────────────────────────────────────────
   14. DESTINATION DETAIL — INLINE FLEX SECTIONS
       (info box + highlight list sections)
───────────────────────────────────────────── */
@media (max-width: 768px) {
  .section > .container > div[style*="flex: 2"],
  .section > .container > div[style*="flex:2"] {
    flex: 1 1 100% !important;
    min-width: 100% !important;
  }

  .info-box {
    padding: 20px 16px;
  }

  .highlight-list li {
    font-size: 0.95rem;
    margin-bottom: 12px;
  }
}


/* ─────────────────────────────────────────────
   15. TIRU TRAVELS SECTION
───────────────────────────────────────────── */
@media (max-width: 768px) {
  .tiru-travels-section {
    padding: 60px 16px;
  }

  .tiru-travels-container {
    flex-direction: column;
    gap: 36px;
  }

  .tiru-image-col,
  .tiru-content-col {
    flex: 1 1 100%;
    min-width: 0;
  }

  .tiru-heading {
    font-size: 2rem;
  }

  .tiru-metrics-row {
    padding: 14px 12px;
  }

  .tiru-metric-number {
    font-size: 1.2rem;
  }

  .tiru-metric-label {
    font-size: 0.65rem;
  }

  .tiru-cta-buttons {
    flex-direction: column;
    align-items: stretch;
  }

  .tiru-btn-whatsapp,
  .tiru-btn-call {
    justify-content: center;
    text-align: center;
  }
}

@media (max-width: 576px) {
  .tiru-heading {
    font-size: 1.7rem;
  }

  .tiru-description {
    font-size: 0.9rem;
  }

  .tiru-service-row {
    padding: 12px 14px;
  }

  .tiru-service-name {
    font-size: 0.82rem;
  }

  .tiru-service-desc {
    font-size: 0.7rem;
  }
}


/* ─────────────────────────────────────────────
   16. CONTACT PAGE
───────────────────────────────────────────── */
@media (max-width: 768px) {
  .contact-hero-banner {
    padding: 100px 20px 50px;
  }

  .contact-hero-banner h1 {
    font-size: 2.2rem;
  }

  .contact-hero-banner p {
    font-size: 1rem;
  }

  .key-contacts-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .contact-main-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .contact-card-redesign {
    padding: 24px 20px;
  }

  .contact-card-title {
    font-size: 1.3rem;
  }
}

@media (max-width: 576px) {
  .contact-hero-banner {
    min-height: 36vh;
    padding: 90px 16px 40px;
  }

  .contact-hero-banner h1 {
    font-size: 1.8rem;
  }

  /* Person card — stack avatar on top */
  .person-card {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 16px;
    padding: 24px 20px;
  }

  .person-contact-links {
    justify-content: center;
    flex-wrap: wrap;
  }

  .person-avatar {
    width: 100px;
    height: 100px;
  }

  .arunachalam-spotlight {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 12px;
    padding: 16px;
  }

  .arunachalam-thumb {
    width: 70px;
    height: 70px;
  }

  .map-wrapper iframe {
    height: 280px;
  }
}


/* ─────────────────────────────────────────────
   17. GALLERY PAGE
───────────────────────────────────────────── */
@media (max-width: 768px) {
  .masonry {
    column-count: 2;
    column-gap: 14px;
  }

  .gallery-item {
    margin-bottom: 14px;
  }

  .filter-menu {
    gap: 8px;
    margin-bottom: 20px;
  }

  .filter-btn {
    padding: 6px 14px;
    font-size: 0.85rem;
  }
}

@media (max-width: 480px) {
  .masonry {
    column-count: 1;
    column-gap: 0;
  }

  .gallery-item {
    margin-bottom: 12px;
  }
}


/* ─────────────────────────────────────────────
   18. CALL TO ACTION SECTIONS (bg gradient)
───────────────────────────────────────────── */
@media (max-width: 768px) {
  .section.text-center[style*="padding:120px 20px"],
  .section.text-center[style*="padding: 120px 20px"] {
    padding: 80px 20px !important;
  }

  .section.text-center h2[style*="color: var(--white)"] {
    font-size: 1.8rem !important;
  }
}

@media (max-width: 576px) {
  /* CTA buttons that have margin-left: 30px on mobile */
  .section.text-center .btn[style*="margin-left: 30px"],
  .section.text-center .btn[style*="margin-left:30px"] {
    margin-left: 0 !important;
    margin-top: 12px !important;
  }

  .section.text-center[style*="padding:120px 20px"],
  .section.text-center[style*="padding: 120px 20px"] {
    padding: 60px 16px !important;
  }

  /* Stack CTA buttons vertically */
  .section.text-center .container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }

  .section.text-center .container h2,
  .section.text-center .container p {
    text-align: center;
  }

  .section.text-center .container .btn {
    width: 100%;
    max-width: 260px;
    justify-content: center;
    margin: 0 !important;
  }
}


/* ─────────────────────────────────────────────
   19. FOOTER
───────────────────────────────────────────── */
@media (max-width: 768px) {
  .footer {
    padding: 60px 0 20px;
  }

  .footer-grid {
    grid-template-columns: 1fr;
    gap: 30px;
    text-align: center;
  }

  .social-links {
    justify-content: center;
  }

  .footer-contact li {
    justify-content: center;
  }

  .footer-links a {
    transform: none !important;
  }
}

@media (max-width: 576px) {
  .footer {
    padding: 50px 16px 20px;
  }

  .footer-grid {
    gap: 28px;
  }

  .footer h3 {
    font-size: 1.1rem;
    margin-bottom: 14px;
  }

  .footer-contact li {
    flex-direction: column;
    align-items: center;
    gap: 6px;
    text-align: center;
  }

  .footer-bottom {
    font-size: 0.82rem;
    padding-top: 16px;
    margin-top: 20px;
  }
}


/* ─────────────────────────────────────────────
   20. WHATSAPP FLOAT BUTTON
───────────────────────────────────────────── */
@media (max-width: 576px) {
  .whatsapp-float {
    width: 52px;
    height: 52px;
    bottom: 20px;
    right: 16px;
    font-size: 24px;
  }

  .whatsapp-float svg {
    width: 26px;
    height: 26px;
  }
}


/* ─────────────────────────────────────────────
   21. BOOK / FAQ PAGES
───────────────────────────────────────────── */
@media (max-width: 768px) {
  .faq-container {
    padding: 0 16px;
  }

  .faq-question {
    font-size: 0.95rem;
    padding: 16px 20px;
  }

  .faq-answer {
    padding: 0 20px;
  }

  .faq-item.active .faq-answer {
    padding: 0 20px 16px;
  }
}

@media (max-width: 576px) {
  .faq-question {
    font-size: 0.9rem;
    padding: 14px 16px;
  }

  .faq-answer {
    padding: 0 16px;
  }

  .faq-item.active .faq-answer {
    padding: 0 16px 14px;
  }
}


/* ─────────────────────────────────────────────
   22. WELCOME / INTRO SECTIONS (index & destinations)
───────────────────────────────────────────── */
@media (max-width: 768px) {
  .welcome-section p[style*="font-size: 18px"],
  .welcome-section p[style*="font-size:18px"] {
    font-size: 1rem !important;
  }

  .welcome-section p[style*="max-width: 800px"] {
    max-width: 100% !important;
  }
}

@media (max-width: 576px) {
  .welcome-section {
    padding-left: 16px;
    padding-right: 16px;
  }

  .welcome-section p[style*="font-size: 18px"] {
    font-size: 0.95rem !important;
  }
}


/* ─────────────────────────────────────────────
   23. DESTINATION DETAIL — ABOUT SECTION FLEX
───────────────────────────────────────────── */
@media (max-width: 768px) {
  /* Parvathamalai / other destination pages: inline flex-wrap layouts */
  div[style*="display: flex; flex-wrap: wrap; gap: 50px"] {
    gap: 28px !important;
  }

  div[style*="flex: 1; min-width: 300px"],
  div[style*="flex: 2; min-width: 300px"] {
    flex: 1 1 100% !important;
    min-width: 0 !important;
  }
}

@media (max-width: 576px) {
  div[style*="display: flex; flex-wrap: wrap; gap: 50px"] {
    gap: 20px !important;
  }
}


/* ─────────────────────────────────────────────
   24. GALLERY FILTER BAR (overflow scroll on mobile)
───────────────────────────────────────────── */
@media (max-width: 576px) {
  .filter-menu {
    overflow-x: auto;
    flex-wrap: nowrap;
    justify-content: flex-start;
    padding-bottom: 8px;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }

  .filter-menu::-webkit-scrollbar {
    display: none;
  }

  .filter-btn {
    flex-shrink: 0;
    padding: 6px 14px;
    font-size: 0.82rem;
  }
}


/* ─────────────────────────────────────────────
   25. SHIVALINGAM ABHISHEKAM & SPECIAL PAGES
───────────────────────────────────────────── */
@media (max-width: 768px) {
  /* Any page-specific grid / table layouts */
  table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    width: 100%;
  }
}

@media (max-width: 576px) {
  /* Booking form / special pages */
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="date"],
  input[type="number"],
  select,
  textarea {
    font-size: 16px; /* prevents auto-zoom on iOS */
  }
}


/* ─────────────────────────────────────────────
   26. BOOK.HTML BOOKING FORM
───────────────────────────────────────────── */
@media (max-width: 768px) {
  .booking-form-wrapper,
  .book-section {
    padding: 0 16px;
  }

  .booking-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}


/* ─────────────────────────────────────────────
   27. LIGHTBOX (gallery)
───────────────────────────────────────────── */
@media (max-width: 576px) {
  .lightbox img {
    max-width: 96%;
    max-height: 85vh;
  }

  .lightbox-close {
    top: 12px;
    right: 16px;
    font-size: 32px;
  }
}


/* ─────────────────────────────────────────────
   28. SHIVALINGAM ABHISHEKAM PAGE
       (split hero + offerings + blessings)
───────────────────────────────────────────── */
@media (max-width: 992px) {
  .abhi-hero {
    flex-direction: column;
  }

  .abhi-hero-left {
    flex: none;
    width: 100%;
    padding: 120px 30px 50px;
    text-align: center;
    align-items: center;
  }

  .abhi-hero-h1 {
    font-size: 2.8rem;
  }

  .abhi-hero-desc {
    max-width: 100%;
  }

  .abhi-highlight-box {
    max-width: 100%;
  }

  .abhi-hero-right {
    flex: none;
    width: 100%;
    min-height: 320px;
  }

  .abhi-hero-right::before {
    width: 100%;
    height: 80px;
    background: linear-gradient(to bottom, #fdf8f1, transparent);
    top: 0;
    left: 0;
  }

  .abhi-blessings-container {
    flex-direction: column;
    gap: 36px;
  }

  .abhi-blessings-content,
  .abhi-blessings-image {
    flex: 1 1 100%;
    min-width: 0;
  }
}

@media (max-width: 768px) {
  .abhi-hero-left {
    padding: 100px 24px 40px;
  }

  .abhi-hero-h1 {
    font-size: 2.2rem;
  }

  .abhi-offerings-section {
    padding: 60px 16px;
  }

  .abhi-blessings-section {
    padding: 60px 16px;
  }

  .abhi-blessings-content h2 {
    font-size: 1.8rem;
  }

  .abhi-book-bar {
    padding: 40px 16px;
  }

  .abhi-book-bar h2 {
    font-size: 1.5rem;
  }

  .abhi-contact-row {
    flex-direction: column;
    align-items: center;
    gap: 16px;
  }

  .abhi-book-cta-row {
    flex-direction: column;
    align-items: center;
  }

  .abhi-btn-whatsapp,
  .abhi-btn-book {
    width: 100%;
    max-width: 260px;
    justify-content: center;
  }
}

@media (max-width: 576px) {
  .abhi-hero-left {
    padding: 90px 16px 36px;
  }

  .abhi-hero-h1 {
    font-size: 1.8rem;
  }

  .abhi-sacred-label {
    font-size: 0.7rem;
  }

  .abhi-offerings-grid {
    gap: 12px;
  }

  .abhi-offering-card {
    flex: 1 1 calc(50% - 12px);
    min-width: 130px;
    max-width: none;
  }
}


/* ─────────────────────────────────────────────
   29. BOOK.HTML — BOOKING FORM
───────────────────────────────────────────── */
@media (max-width: 768px) {
  .form-container {
    padding: 28px 20px;
  }

  .form-row {
    flex-direction: column;
    gap: 0;
  }

  .form-row .form-group {
    min-width: 100%;
  }
}

@media (max-width: 576px) {
  .form-container {
    padding: 24px 16px;
  }
}


/* ─────────────────────────────────────────────
   30. SMALL UTILITY FIXES
───────────────────────────────────────────── */
/* Prevent horizontal scroll caused by overflow on all viewports */
* {
  box-sizing: border-box;
}

@media (max-width: 576px) {
  /* Avoid text overflow in cards */
  .card-title,
  .dest-card-title,
  .timeline-content h3 {
    word-break: break-word;
    hyphens: auto;
  }

  /* Fix button wrapping issues */
  .btn {
    white-space: nowrap;
  }

  /* Person role text wrapping */
  .person-role,
  .person-desc {
    text-align: center;
  }
}
