/* =========================================================================
   GoViral Marketing — responsive.css  (mobile-first breakpoints)
   ========================================================================= */

/* Large tablets / small laptops */
@media (max-width: 1024px) {
    .gv-section { padding: 80px 0; }
    .gv-footer__grid { grid-template-columns: 1fr 1fr; gap: 40px; }
    .gv-blog__layout { grid-template-columns: 1fr; }
    .gv-hero__slide { grid-template-columns: 1fr; text-align: center; }
    .gv-hero__media { display: none; }
    .gv-about__grid,
    .gv-contact__grid { grid-template-columns: 1fr; gap: 40px; }
}

/* Tablets */
@media (max-width: 900px) {
    :root { --gv-header-h: 76px; }

    /* Mobile nav */
    .gv-header__toggle { display: flex; }
    .gv-nav {
        position: fixed; top: 0; right: -100%; width: min(86vw, 380px); height: 100vh;
        background: #fff; box-shadow: -10px 0 40px rgba(0,0,0,.18);
        padding: 90px 28px 40px; overflow-y: auto; transition: right var(--gv-transition); z-index: 1000;
    }
    .gv-nav.is-open { right: 0; }
    .gv-nav ul { flex-direction: column; align-items: stretch; gap: 0; }
    .gv-nav a { color: var(--gv-heading); padding: 14px 6px; border-bottom: 1px solid var(--gv-border); }
    .gv-nav a::after { display: none; }
    .gv-nav .sub-menu {
        position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none;
        padding: 0 0 0 16px; background: transparent;
    }
    .gv-nav .sub-menu a { padding: 10px 6px; }
    .gv-nav-overlay {
        position: fixed; inset: 0; background: rgba(0,0,0,.5); opacity: 0; visibility: hidden;
        transition: var(--gv-transition); z-index: 998;
    }
    .gv-nav-overlay.is-open { opacity: 1; visibility: visible; }
    .gv-nav__close { position: absolute; top: 24px; right: 24px; background: none; border: 0; font-size: 28px; cursor: pointer; color: var(--gv-heading); }

    .gv-service-row { grid-template-columns: 1fr; gap: 20px; text-align: center; padding: 36px 0; }
    .gv-service-row__media { order: 0 !important; }
    .gv-service-row__num { font-size: 3rem; }

    .gv-rating-badge { position: static; margin: 30px auto 0; width: max-content; }
    .gv-cta { padding: 70px 0; }
}

/* Phones */
@media (max-width: 600px) {
    .gv-section { padding: 60px 0; }
    .gv-container { padding: 0 18px; }
    h1 { font-size: 2.1rem; }
    .gv-footer__grid { grid-template-columns: 1fr; gap: 36px; }
    .gv-form__row { grid-template-columns: 1fr; }
    .gv-price-card.is-featured { transform: none; }
    .gv-heading-stack .gv-heading-outline { font-size: 3rem; top: -24px; }
    .gv-btn { padding: 13px 26px; font-size: .85rem; }
    .gv-hero { min-height: 88vh; }
}
