/* Responsive CSS */
@media (max-width: 1024px) {
  .hero-inner {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .hero-visual {
    display: none;
  }

  .about-grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .svc-grid {
    grid-template-columns: 1fr 1fr;
  }

  .svc-grid-2 {
    grid-template-columns: 1fr 1fr;
    max-width: 100%;
  }

  .tips-grid {
    grid-template-columns: 1fr 1fr;
  }

  .tip-featured {
    flex-direction: column;
    align-items: flex-start;
    gap: 1.2rem;
  }
}


@media (max-width: 768px) {
  .page-hero {
    padding: 7rem 0 4rem;
    min-height: auto;
  }

  .svc-grid,
  .svc-grid-2 {
    grid-template-columns: 1fr;
  }

  .tips-grid {
    grid-template-columns: 1fr;
  }

  .stats-row {
    gap: .5rem;
  }

  .stat-item::after {
    display: none;
  }

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

  .cta-btns {
    flex-direction: column;
    align-items: center;
  }
}

@media (max-width: 480px) {
  .hero-mini-stats {
    grid-template-columns: 1fr 1fr;
  }

  .card-stack {
    height: 320px;
  }
}

/* Fixed: removed invalid text that was breaking responsive CSS parsing. */
/* ─── Mobile tweaks (< 768px) ────────────────────────────────── */
@media (max-width: 767px) {
  .emv-footer {
    padding-top: 2.5rem;
  }

  .emv-footer .f-bottom {
    margin-top: 1.5rem;
  }

  /* Prevent horizontal overflow caused by full-width container padding */
  .emv-footer .container {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  /* Accordion body breathing room */
  .emv-footer .accordion-body {
    padding: 0.5rem 0 1.5rem;
  }

  /* Improved form field spacing */
  .emv-footer .mb-2,
  .emv-footer .mb-3 {
    margin-bottom: 0.85rem !important;
  }

  /* Bigger touch-friendly inputs — keep solid dark bg */
  .emv-footer .form-control {
    font-size: 1rem;
    padding: 0.75rem 1rem;
    border-radius: 12px;
    background: #0f2356;
  }

  /* Labels more readable */
  .emv-footer .form-label {
    font-size: 0.85rem;
    margin-bottom: 0.4rem;
  }

  /* Stack buttons full-width */
  .emv-btn-group {
    flex-direction: column;
  }

  .btn-emv-submit,
  .btn-emv-reset {
    width: 100%;
    flex: none;
  }

  /* Centre social icons */
  .f-social {
    justify-content: center;
    gap: 0.75rem !important;
  }

  /* Address line-height fix */
  .emv-footer address {
    line-height: 1.5;
  }

  .emv-footer address .addr-row {
    min-height: 0;
    padding: 0.35rem 0;
  }

  /* Accordion touch feel */
  .emv-footer .accordion-button {
    font-size: 0.92rem;
    padding: 0.9rem 0;
  }

  /* Heading letter-spacing fits narrow screens */
  .emv-footer .f-heading {
    font-size: 0.7rem;
    letter-spacing: 0.15em;
  }

  /* Bottom bar: stack vertically */
  .emv-footer .f-bottom .container {
    flex-direction: column;
    gap: 0.3rem;
    text-align: center;
  }
}

@media (max-width: 400px) {
  .emv-footer {
    padding-top: 2rem;
  }

  /* Compact popup on tiny screens */
  #emv-popup {
    padding: 24px 16px 20px;
  }

  #emv-popup h3 {
    font-size: 1.05rem;
  }

  #emv-popup p {
    font-size: 0.85rem;
  }

  /* Slightly smaller but still tappable social icons */
  .f-social a {
    width: 2.2rem;
    height: 2.2rem;
    min-width: 2.75rem;
    min-height: 2.75rem;
  }

  .emv-footer .container {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
}

@media (max-width: 991px) {
  body {
    padding-bottom: 70px;
  }
}

@media (max-width: 900px) {
  .callback-form {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 576px) {
  .callback-form {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 992px) {
  .mobile-cta {
    display: none;
  }
}

@media (max-width: 767px) {
  .form-card {
    padding: 26px 18px;
  }

  .callback-section {
    padding: 24px 20px;
  }

  .progress-tracker {
    padding: 26px 20px;
  }

  .social-strip {
    flex-direction: column;
    text-align: center;
  }

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

/* Fixed: removed invalid text that was breaking responsive CSS parsing. */
/* ─── Mobile tweaks (< 768px) ────────────────────────────────── */
@media (max-width: 767px) {
  .emv-footer {
    padding-top: 2.5rem;
  }

  .emv-footer .f-bottom {
    margin-top: 1.5rem;
  }

  /* Prevent horizontal overflow caused by full-width container padding */
  .emv-footer .container {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  /* Accordion body breathing room */
  .emv-footer .accordion-body {
    padding: 0.5rem 0 1.5rem;
  }

  /* Improved form field spacing */
  .emv-footer .mb-2,
  .emv-footer .mb-3 {
    margin-bottom: 0.85rem !important;
  }

  /* Bigger touch-friendly inputs — keep solid dark bg */
  .emv-footer .form-control {
    font-size: 1rem;
    padding: 0.75rem 1rem;
    border-radius: 12px;
    background: #0f2356;
  }

  /* Labels more readable */
  .emv-footer .form-label {
    font-size: 0.85rem;
    margin-bottom: 0.4rem;
  }

  /* Stack buttons full-width */
  .emv-btn-group {
    flex-direction: column;
  }

  .btn-emv-submit,
  .btn-emv-reset {
    width: 100%;
    flex: none;
  }

  /* Centre social icons */
  .f-social {
    justify-content: center;
    gap: 0.75rem !important;
  }

  /* Address line-height fix */
  .emv-footer address {
    line-height: 1.5;
  }

  .emv-footer address .addr-row {
    min-height: 0;
    padding: 0.35rem 0;
  }

  /* Accordion touch feel */
  .emv-footer .accordion-button {
    font-size: 0.92rem;
    padding: 0.9rem 0;
  }

  /* Heading letter-spacing fits narrow screens */
  .emv-footer .f-heading {
    font-size: 0.7rem;
    letter-spacing: 0.15em;
  }

  /* Bottom bar: stack vertically */
  .emv-footer .f-bottom .container {
    flex-direction: column;
    gap: 0.3rem;
    text-align: center;
  }
}

@media (max-width: 400px) {
  .emv-footer {
    padding-top: 2rem;
  }

  /* Compact popup on tiny screens */
  #emv-popup {
    padding: 24px 16px 20px;
  }

  #emv-popup h3 {
    font-size: 1.05rem;
  }

  #emv-popup p {
    font-size: 0.85rem;
  }

  /* Slightly smaller but still tappable social icons */
  .f-social a {
    width: 2.2rem;
    height: 2.2rem;
    min-width: 2.75rem;
    min-height: 2.75rem;
  }

  .emv-footer .container {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
}

@media(max-width:900px) {
  .dest-bento {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
  }

  .dest-card.big {
    grid-row: span 1;
  }

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

  .fg-4 {
    grid-template-columns: 1fr 1fr;
  }

  .fg-3 {
    grid-template-columns: 1fr 1fr;
  }

  .stat-item {
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  }
}

@media(max-width:600px) {

  .fg-3,
  .fg-5,
  .fg-4 {
    grid-template-columns: 1fr;
  }

  .dest-bento {
    grid-template-columns: 1fr;
  }

  .booking-card {
    padding: 1.75rem 1.25rem;
  }
}

/* Fixed: removed invalid text that was breaking responsive CSS parsing. */
/* ─── Mobile tweaks (< 768px) ────────────────────────────────── */
@media (max-width: 767px) {
  .emv-footer {
    padding-top: 2.5rem;
  }

  .emv-footer .f-bottom {
    margin-top: 1.5rem;
  }

  /* Prevent horizontal overflow caused by full-width container padding */
  .emv-footer .container {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  /* Accordion body breathing room */
  .emv-footer .accordion-body {
    padding: 0.5rem 0 1.5rem;
  }

  /* Improved form field spacing */
  .emv-footer .mb-2,
  .emv-footer .mb-3 {
    margin-bottom: 0.85rem !important;
  }

  /* Bigger touch-friendly inputs — keep solid dark bg */
  .emv-footer .form-control {
    font-size: 1rem;
    padding: 0.75rem 1rem;
    border-radius: 12px;
    background: #0f2356;
  }

  /* Labels more readable */
  .emv-footer .form-label {
    font-size: 0.85rem;
    margin-bottom: 0.4rem;
  }

  /* Stack buttons full-width */
  .emv-btn-group {
    flex-direction: column;
  }

  .btn-emv-submit,
  .btn-emv-reset {
    width: 100%;
    flex: none;
  }

  /* Centre social icons */
  .f-social {
    justify-content: center;
    gap: 0.75rem !important;
  }

  /* Address line-height fix */
  .emv-footer address {
    line-height: 1.5;
  }

  .emv-footer address .addr-row {
    min-height: 0;
    padding: 0.35rem 0;
  }

  /* Accordion touch feel */
  .emv-footer .accordion-button {
    font-size: 0.92rem;
    padding: 0.9rem 0;
  }

  /* Heading letter-spacing fits narrow screens */
  .emv-footer .f-heading {
    font-size: 0.7rem;
    letter-spacing: 0.15em;
  }

  /* Bottom bar: stack vertically */
  .emv-footer .f-bottom .container {
    flex-direction: column;
    gap: 0.3rem;
    text-align: center;
  }
}

@media (max-width: 400px) {
  .emv-footer {
    padding-top: 2rem;
  }

  /* Compact popup on tiny screens */
  #emv-popup {
    padding: 24px 16px 20px;
  }

  #emv-popup h3 {
    font-size: 1.05rem;
  }

  #emv-popup p {
    font-size: 0.85rem;
  }

  /* Slightly smaller but still tappable social icons */
  .f-social a {
    width: 2.2rem;
    height: 2.2rem;
    min-width: 2.75rem;
    min-height: 2.75rem;
  }

  .emv-footer .container {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
}

@media (max-width: 768px) {
  .hero-section {
    min-height: 80vh;
  }

  .hero-divider {
    display: none;
  }

  .news-carousel-wrap {
    padding: 1.5rem 1rem;
  }

  .carousel-control-prev {
    left: 0;
  }

  .carousel-control-next {
    right: 0;
  }
}

/* Fixed: removed invalid text that was breaking responsive CSS parsing. */
/* ─── Mobile tweaks (< 768px) ────────────────────────────────── */
@media (max-width: 767px) {
  .emv-footer {
    padding-top: 2.5rem;
  }

  .emv-footer .f-bottom {
    margin-top: 1.5rem;
  }

  /* Prevent horizontal overflow caused by full-width container padding */
  .emv-footer .container {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  /* Accordion body breathing room */
  .emv-footer .accordion-body {
    padding: 0.5rem 0 1.5rem;
  }

  /* Improved form field spacing */
  .emv-footer .mb-2,
  .emv-footer .mb-3 {
    margin-bottom: 0.85rem !important;
  }

  /* Bigger touch-friendly inputs — keep solid dark bg */
  .emv-footer .form-control {
    font-size: 1rem;
    padding: 0.75rem 1rem;
    border-radius: 12px;
    background: #0f2356;
  }

  /* Labels more readable */
  .emv-footer .form-label {
    font-size: 0.85rem;
    margin-bottom: 0.4rem;
  }

  /* Stack buttons full-width */
  .emv-btn-group {
    flex-direction: column;
  }

  .btn-emv-submit,
  .btn-emv-reset {
    width: 100%;
    flex: none;
  }

  /* Centre social icons */
  .f-social {
    justify-content: center;
    gap: 0.75rem !important;
  }

  /* Address line-height fix */
  .emv-footer address {
    line-height: 1.5;
  }

  .emv-footer address .addr-row {
    min-height: 0;
    padding: 0.35rem 0;
  }

  /* Accordion touch feel */
  .emv-footer .accordion-button {
    font-size: 0.92rem;
    padding: 0.9rem 0;
  }

  /* Heading letter-spacing fits narrow screens */
  .emv-footer .f-heading {
    font-size: 0.7rem;
    letter-spacing: 0.15em;
  }

  /* Bottom bar: stack vertically */
  .emv-footer .f-bottom .container {
    flex-direction: column;
    gap: 0.3rem;
    text-align: center;
  }
}

@media (max-width: 400px) {
  .emv-footer {
    padding-top: 2rem;
  }

  /* Compact popup on tiny screens */
  #emv-popup {
    padding: 24px 16px 20px;
  }

  #emv-popup h3 {
    font-size: 1.05rem;
  }

  #emv-popup p {
    font-size: 0.85rem;
  }

  /* Slightly smaller but still tappable social icons */
  .f-social a {
    width: 2.2rem;
    height: 2.2rem;
    min-width: 2.75rem;
    min-height: 2.75rem;
  }

  .emv-footer .container {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
}

@media (max-width: 600px) {
  .stats-inner {
    grid-template-columns: repeat(2, 1fr);
  }

  .stat-cell:nth-child(3)::before {
    display: none;
  }
}

@media (max-width: 991px) {
  .main-wrap {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .form-sticky {
    order: 2;
  }

  .content-side {
    order: 1;
  }
}

@media (max-width: 767px) {
  .feat-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 479px) {
  .feat-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  .testi-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  .hero h1 {
    font-size: 2.6rem;
  }

  .hero-cta-group {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* Fixed: removed invalid text that was breaking responsive CSS parsing. */
/* ─── Mobile tweaks (< 768px) ────────────────────────────────── */
@media (max-width: 767px) {
  .emv-footer {
    padding-top: 2.5rem;
  }

  .emv-footer .f-bottom {
    margin-top: 1.5rem;
  }

  /* Prevent horizontal overflow caused by full-width container padding */
  .emv-footer .container {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  /* Accordion body breathing room */
  .emv-footer .accordion-body {
    padding: 0.5rem 0 1.5rem;
  }

  /* Improved form field spacing */
  .emv-footer .mb-2,
  .emv-footer .mb-3 {
    margin-bottom: 0.85rem !important;
  }

  /* Bigger touch-friendly inputs — keep solid dark bg */
  .emv-footer .form-control {
    font-size: 1rem;
    padding: 0.75rem 1rem;
    border-radius: 12px;
    background: #0f2356;
  }

  /* Labels more readable */
  .emv-footer .form-label {
    font-size: 0.85rem;
    margin-bottom: 0.4rem;
  }

  /* Stack buttons full-width */
  .emv-btn-group {
    flex-direction: column;
  }

  .btn-emv-submit,
  .btn-emv-reset {
    width: 100%;
    flex: none;
  }

  /* Centre social icons */
  .f-social {
    justify-content: center;
    gap: 0.75rem !important;
  }

  /* Address line-height fix */
  .emv-footer address {
    line-height: 1.5;
  }

  .emv-footer address .addr-row {
    min-height: 0;
    padding: 0.35rem 0;
  }

  /* Accordion touch feel */
  .emv-footer .accordion-button {
    font-size: 0.92rem;
    padding: 0.9rem 0;
  }

  /* Heading letter-spacing fits narrow screens */
  .emv-footer .f-heading {
    font-size: 0.7rem;
    letter-spacing: 0.15em;
  }

  /* Bottom bar: stack vertically */
  .emv-footer .f-bottom .container {
    flex-direction: column;
    gap: 0.3rem;
    text-align: center;
  }
}

@media (max-width: 400px) {
  .emv-footer {
    padding-top: 2rem;
  }

  /* Compact popup on tiny screens */
  #emv-popup {
    padding: 24px 16px 20px;
  }

  #emv-popup h3 {
    font-size: 1.05rem;
  }

  #emv-popup p {
    font-size: 0.85rem;
  }

  /* Slightly smaller but still tappable social icons */
  .f-social a {
    width: 2.2rem;
    height: 2.2rem;
    min-width: 2.75rem;
    min-height: 2.75rem;
  }

  .emv-footer .container {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
}

@media (max-width: 768px) {
  .main-card {
    margin: -50px 1rem 3rem;
    padding: 2rem 1.25rem;
  }

  .page-hero {
    padding: 6rem 1.25rem 4rem;
    min-height: 380px;
  }

  .services-grid {
    grid-template-columns: 1fr;
  }
}

/* Fixed: removed invalid text that was breaking responsive CSS parsing. */
/* ─── Mobile tweaks (< 768px) ────────────────────────────────── */
@media (max-width: 767px) {
  .emv-footer {
    padding-top: 2.5rem;
  }

  .emv-footer .f-bottom {
    margin-top: 1.5rem;
  }

  /* Prevent horizontal overflow caused by full-width container padding */
  .emv-footer .container {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  /* Accordion body breathing room */
  .emv-footer .accordion-body {
    padding: 0.5rem 0 1.5rem;
  }

  /* Improved form field spacing */
  .emv-footer .mb-2,
  .emv-footer .mb-3 {
    margin-bottom: 0.85rem !important;
  }

  /* Bigger touch-friendly inputs — keep solid dark bg */
  .emv-footer .form-control {
    font-size: 1rem;
    padding: 0.75rem 1rem;
    border-radius: 12px;
    background: #0f2356;
  }

  /* Labels more readable */
  .emv-footer .form-label {
    font-size: 0.85rem;
    margin-bottom: 0.4rem;
  }

  /* Stack buttons full-width */
  .emv-btn-group {
    flex-direction: column;
  }

  .btn-emv-submit,
  .btn-emv-reset {
    width: 100%;
    flex: none;
  }

  /* Centre social icons */
  .f-social {
    justify-content: center;
    gap: 0.75rem !important;
  }

  /* Address line-height fix */
  .emv-footer address {
    line-height: 1.5;
  }

  .emv-footer address .addr-row {
    min-height: 0;
    padding: 0.35rem 0;
  }

  /* Accordion touch feel */
  .emv-footer .accordion-button {
    font-size: 0.92rem;
    padding: 0.9rem 0;
  }

  /* Heading letter-spacing fits narrow screens */
  .emv-footer .f-heading {
    font-size: 0.7rem;
    letter-spacing: 0.15em;
  }

  /* Bottom bar: stack vertically */
  .emv-footer .f-bottom .container {
    flex-direction: column;
    gap: 0.3rem;
    text-align: center;
  }
}

@media (max-width: 400px) {
  .emv-footer {
    padding-top: 2rem;
  }

  /* Compact popup on tiny screens */
  #emv-popup {
    padding: 24px 16px 20px;
  }

  #emv-popup h3 {
    font-size: 1.05rem;
  }

  #emv-popup p {
    font-size: 0.85rem;
  }

  /* Slightly smaller but still tappable social icons */
  .f-social a {
    width: 2.2rem;
    height: 2.2rem;
    min-width: 2.75rem;
    min-height: 2.75rem;
  }

  .emv-footer .container {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
}

@media(max-width:767px) {
  .stat-block {
    padding: 18px 10px;
  }

  .stat-block .num {
    font-size: 1.6rem;
  }

  .hero-section {
    padding: 100px 0 70px;
  }

  .elig-card {
    padding: 1.5rem;
  }

  .stats-strip .inner {
    flex-wrap: wrap;
  }

  .stat-block {
    flex: 1 1 50%;
  }
}

/* Fixed: removed invalid text that was breaking responsive CSS parsing. */
/* ─── Mobile tweaks (< 768px) ────────────────────────────────── */
@media (max-width: 767px) {
  .emv-footer {
    padding-top: 2.5rem;
  }

  .emv-footer .f-bottom {
    margin-top: 1.5rem;
  }

  /* Prevent horizontal overflow caused by full-width container padding */
  .emv-footer .container {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  /* Accordion body breathing room */
  .emv-footer .accordion-body {
    padding: 0.5rem 0 1.5rem;
  }

  /* Improved form field spacing */
  .emv-footer .mb-2,
  .emv-footer .mb-3 {
    margin-bottom: 0.85rem !important;
  }

  /* Bigger touch-friendly inputs — keep solid dark bg */
  .emv-footer .form-control {
    font-size: 1rem;
    padding: 0.75rem 1rem;
    border-radius: 12px;
    background: #0f2356;
  }

  /* Labels more readable */
  .emv-footer .form-label {
    font-size: 0.85rem;
    margin-bottom: 0.4rem;
  }

  /* Stack buttons full-width */
  .emv-btn-group {
    flex-direction: column;
  }

  .btn-emv-submit,
  .btn-emv-reset {
    width: 100%;
    flex: none;
  }

  /* Centre social icons */
  .f-social {
    justify-content: center;
    gap: 0.75rem !important;
  }

  /* Address line-height fix */
  .emv-footer address {
    line-height: 1.5;
  }

  .emv-footer address .addr-row {
    min-height: 0;
    padding: 0.35rem 0;
  }

  /* Accordion touch feel */
  .emv-footer .accordion-button {
    font-size: 0.92rem;
    padding: 0.9rem 0;
  }

  /* Heading letter-spacing fits narrow screens */
  .emv-footer .f-heading {
    font-size: 0.7rem;
    letter-spacing: 0.15em;
  }

  /* Bottom bar: stack vertically */
  .emv-footer .f-bottom .container {
    flex-direction: column;
    gap: 0.3rem;
    text-align: center;
  }
}

@media (max-width: 400px) {
  .emv-footer {
    padding-top: 2rem;
  }

  /* Compact popup on tiny screens */
  #emv-popup {
    padding: 24px 16px 20px;
  }

  #emv-popup h3 {
    font-size: 1.05rem;
  }

  #emv-popup p {
    font-size: 0.85rem;
  }

  /* Slightly smaller but still tappable social icons */
  .f-social a {
    width: 2.2rem;
    height: 2.2rem;
    min-width: 2.75rem;
    min-height: 2.75rem;
  }

  .emv-footer .container {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
}
