/**
 * Growth Tech 360 — mobile / tablet polish
 * Loaded sitewide after main theme sheets. Focus: no overflow, readable type,
 * tappable controls, premium home sections stacking cleanly under ~991px.
 */

/* -------------------------------------------------------------------------- */
/* Foundations                                                                */
/* -------------------------------------------------------------------------- */

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body.gl-site {
  max-width: 100%;
  min-width: 0;
}

body.gl-site a[href^="mailto:"],
body.gl-site a[href^="tel:"] {
  overflow-wrap: anywhere;
  word-break: break-word;
}

body.gl-site img,
body.gl-site video,
body.gl-site canvas,
body.gl-site svg {
  max-width: 100%;
  height: auto;
}

body.gl-site .gl-main {
  max-width: 100%;
  min-width: 0;
}

/* -------------------------------------------------------------------------- */
/* Header — logo + hamburger. Drawer rules live in vt-site-chrome.css.        */
/* -------------------------------------------------------------------------- */

@media (max-width: 1199px) {
  :root {
    --vt-gutter: clamp(1rem, 4.5vw, 1.35rem);
  }

  body.gl-site .gl-header.header-2,
  body.gl-site .gl-header.header-2.header-3,
  body.gl-site #header-sticky {
    width: 100%;
    max-width: 100%;
  }

  body.gl-site .gl-header .header-main {
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 0.55rem 0.75rem !important;
    padding-block: 0.55rem !important;
    min-width: 0;
  }

  body.gl-site .gl-header .logo {
    flex: 0 0 auto;
    max-width: min(62vw, 220px);
  }

  body.gl-site .gl-header .logo img {
    max-height: 36px !important;
    max-width: 100% !important;
    width: auto !important;
    height: auto !important;
  }

  body.gl-site .mean-container > #mobile-menu {
    display: block !important;
    visibility: visible !important;
    height: auto !important;
    max-height: none !important;
  }

  body.gl-site .mean-bar,
  body.gl-site .mean-push,
  body.gl-site .mean-nav {
    display: none !important;
  }
}

@media (max-width: 575px) {
  body.gl-site .gl-header .logo {
    max-width: min(58vw, 188px);
  }

  body.gl-site .gl-header .logo img {
    max-height: 32px !important;
  }
}

/* -------------------------------------------------------------------------- */
/* Premium homepage — phones & small tablets                                  */
/* -------------------------------------------------------------------------- */

@media (max-width: 991px) {
  .is-premium-home .vt-container,
  .is-premium-home .vt-projects__head,
  .is-premium-home .vt-process__inner {
    width: min(100% - (var(--vt-gutter) * 2), var(--vt-container));
  }

  .is-premium-home .vt-section {
    padding: clamp(3rem, 10vw, 4.5rem) 0;
  }

  /* ---- Hero ---- */
  .is-premium-home .vt-hero {
    min-height: auto;
    padding: calc(var(--vt-header-h) + 0.75rem) 0 3.25rem;
    align-items: flex-start;
  }

  .is-premium-home .vt-hero__grid {
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
    width: min(100% - (var(--vt-gutter) * 2), var(--vt-container));
  }

  .is-premium-home .vt-hero__visual {
    order: 2;
    min-height: 0;
    width: 100%;
    max-width: 22rem;
    margin-inline: auto;
    perspective: none;
  }

  .is-premium-home .vt-hero__copy {
    order: 0;
    max-width: none;
  }

  .is-premium-home .vt-hero__title {
    font-size: clamp(1.85rem, 8.4vw, 3.15rem) !important;
    line-height: 1.08 !important;
    margin-bottom: 1rem !important;
    overflow-wrap: anywhere;
    word-break: break-word;
    max-width: 100%;
    min-width: 0;
  }

  .is-premium-home .vt-hero__copy,
  .is-premium-home .vt-hero__sub {
    max-width: 100%;
    min-width: 0;
    overflow-wrap: break-word;
  }

  .is-premium-home .vt-hero__sub {
    font-size: 0.98rem;
    line-height: 1.65;
    margin-bottom: 1.35rem;
    max-width: none;
  }

  .is-premium-home .vt-hero__ctas {
    flex-direction: column;
    align-items: stretch;
    gap: 0.65rem;
  }

  .is-premium-home .vt-hero__ctas .vt-btn {
    width: 100%;
    min-width: 0 !important;
    justify-content: center;
    padding: 0.95rem 1.1rem;
  }

  .is-premium-home .vt-hero__float {
    padding: 0.55rem 0.7rem;
    border-radius: 12px;
  }

  .is-premium-home .vt-hero__float strong {
    font-size: 1.05rem;
  }

  .is-premium-home .vt-hero__float--a {
    top: 6%;
    left: -0.25rem;
  }

  .is-premium-home .vt-hero__float--b {
    bottom: 8%;
    right: -0.25rem;
  }

  .is-premium-home .vt-dash {
    width: min(100%, 20rem);
    padding: 1rem;
  }

  .is-premium-home .vt-dash__chart {
    height: 110px;
  }

  .is-premium-home .vt-dash__row strong {
    font-size: 1.35rem;
  }

  .is-premium-home .vt-hero__scroll {
    display: none;
  }

  /* ---- Clients / partner marquee ---- */
  .is-premium-home .vt-clients {
    padding-top: clamp(2.5rem, 8vw, 3.5rem);
    padding-bottom: clamp(3rem, 10vw, 4.5rem);
  }

  .is-premium-home .vt-clients__heading {
    font-size: clamp(1.85rem, 8.5vw, 2.6rem) !important;
    line-height: 1.05 !important;
    max-width: 11ch;
  }

  .is-premium-home .vt-clients__bands {
    height: clamp(170px, 48vw, 240px) !important;
    margin-top: -1.5rem !important;
  }

  .is-premium-home .vt-clients__bands {
    overflow: hidden;
    max-width: 100%;
  }

  .is-premium-home .vt-clients__band {
    height: 58px !important;
    left: -12% !important;
    right: -12% !important;
  }

  /* ---- Services stack ---- */
  .is-premium-home .vt-services__pin,
  .is-premium-home .vt-services__shell {
    min-height: auto !important;
  }

  .is-premium-home .vt-services__shell {
    padding: calc(var(--vt-header-h) * 0.15 + 1rem) var(--vt-gutter) 1.25rem !important;
  }

  .is-premium-home .vt-services__stack {
    min-height: min(88vh, 42rem) !important;
  }

  .is-premium-home .vt-svc-card {
    padding: 1.25rem 1.1rem 3.75rem !important;
    justify-content: flex-start;
  }

  .is-premium-home .vt-svc-card__layout {
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
    align-items: start !important;
  }

  .is-premium-home .vt-svc-card__num {
    font-size: clamp(3.4rem, 16vw, 4.5rem) !important;
  }

  .is-premium-home .vt-svc-card__title {
    font-size: clamp(1.35rem, 6vw, 1.75rem) !important;
    line-height: 1.12 !important;
  }

  .is-premium-home .vt-svc-card__desc {
    font-size: 0.95rem !important;
    margin-bottom: 0.85rem !important;
  }

  .is-premium-home .vt-svc-card__media {
    order: -1;
    justify-content: center;
    max-height: 220px;
  }

  .is-premium-home .vt-svc-phone {
    width: min(42%, 148px) !important;
    max-height: 32vh !important;
  }

  .is-premium-home .vt-services__progress {
    padding-inline: var(--vt-gutter) !important;
    bottom: 0.65rem !important;
  }

  /* ---- Projects ---- */
  .is-premium-home .vt-projects__viewport {
    overflow: hidden;
    max-width: 100%;
  }

  .is-premium-home .vt-projects__pin {
    min-height: auto !important;
    padding: 2.5rem 0 !important;
  }

  .is-premium-home .vt-projects__title {
    font-size: clamp(1.85rem, 8vw, 2.5rem) !important;
    line-height: 1.05 !important;
  }

  .is-premium-home .vt-project {
    flex-basis: auto !important;
    width: 100%;
  }

  .is-premium-home .vt-project__meta h3 {
    font-size: 1.35rem !important;
  }

  /* ---- Stats ---- */
  .is-premium-home .vt-stats__heading {
    font-size: clamp(1.85rem, 8vw, 2.5rem) !important;
    margin-bottom: 1.75rem !important;
    max-width: none;
  }

  .is-premium-home .vt-stats__grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 0.85rem 1rem !important;
  }

  .is-premium-home .vt-stat__value {
    font-size: clamp(2.4rem, 12vw, 3.4rem) !important;
  }

  .is-premium-home .vt-stat__label {
    max-width: none;
    font-size: 0.88rem;
  }

  /* ---- Process ---- */
  .is-premium-home .vt-process {
    padding: clamp(3rem, 10vw, 4.5rem) 0 !important;
  }

  .is-premium-home .vt-process__layout {
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
  }

  .is-premium-home .vt-process__left {
    position: static !important;
  }

  .is-premium-home .vt-process__headline {
    font-size: clamp(1.85rem, 8.5vw, 2.75rem) !important;
    line-height: 1.08 !important;
  }

  .is-premium-home .vt-process__cards {
    padding-bottom: 0.5rem !important;
    gap: 0.9rem !important;
  }

  .is-premium-home .vt-process-card__body {
    grid-template-columns: auto 1fr !important;
    padding: 2rem 1rem 1.35rem !important;
    gap: 0.85rem !important;
  }

  .is-premium-home .vt-process-card__text {
    font-size: clamp(1.05rem, 4.8vw, 1.35rem) !important;
  }

  /* ---- Why ---- */
  .is-premium-home .vt-why {
    padding: clamp(3rem, 10vw, 4.5rem) 0 !important;
  }

  .is-premium-home .vt-why__title {
    font-size: clamp(1.85rem, 8vw, 2.5rem) !important;
    line-height: 1.05 !important;
  }

  /* ---- Belief / manifesto ---- */
  .is-premium-home .vt-belief__line {
    font-size: clamp(2rem, 11vw, 3.25rem) !important;
    padding-inline: var(--vt-gutter);
  }

  /* ---- FAQ ---- */
  .is-premium-home .vt-faq__title {
    font-size: clamp(1.85rem, 8vw, 2.5rem) !important;
  }

  .is-premium-home .vt-faq__list {
    padding: 1rem 1.1rem !important;
    border-radius: 14px !important;
  }

  .is-premium-home .vt-faq-item__q,
  .is-premium-home .vt-faq-item__a {
    grid-template-columns: 2.25rem minmax(0, 1fr) auto !important;
    gap: 0.55rem 0.65rem !important;
  }

  .is-premium-home .vt-faq-item__q {
    padding: 1rem 0 !important;
    font-size: 0.95rem !important;
  }

  button.vt-faq-item__q {
    padding: 1rem 0 !important;
  }

  .is-premium-home .vt-faq-item__a p {
    grid-column: 1 / -1 !important;
    padding: 0 0 1.1rem !important;
    font-size: 0.92rem !important;
  }

  /* ---- CTA ---- */
  .is-premium-home .vt-cta {
    min-height: auto !important;
    padding: clamp(3.5rem, 12vw, 5rem) 0 !important;
  }

  .is-premium-home .vt-cta__title {
    font-size: clamp(2rem, 10vw, 3rem) !important;
    line-height: 1.05 !important;
  }

  .is-premium-home .vt-cta__sub {
    font-size: 0.98rem !important;
  }

  .is-premium-home .vt-cta__btn {
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 380px) {
  .is-premium-home .vt-hero__title {
    font-size: clamp(1.65rem, 8vw, 1.95rem) !important;
  }
}

@media (max-width: 575px) {
  .is-premium-home .vt-stats__grid {
    grid-template-columns: 1fr !important;
  }

  .is-premium-home .vt-hero__float--a,
  .is-premium-home .vt-hero__float--b {
    display: none;
  }

  .is-premium-home .vt-svc-card__media {
    max-height: 180px;
  }

  .is-premium-home .vt-svc-phone {
    width: min(46%, 132px) !important;
  }
}

/* -------------------------------------------------------------------------- */
/* Sitewide footer & buttons on small screens                                 */
/* -------------------------------------------------------------------------- */

@media (max-width: 767px) {
  body.gl-site .vt-footer {
    padding: 2.5rem 0 1.5rem !important;
  }

  body.gl-site .vt-footer .vt-footer__inner {
    width: min(100% - 2rem, 1280px);
  }

  body.gl-site .vt-footer__logo img {
    width: min(200px, 78vw);
  }

  body.gl-site .vt-footer__marquee {
    margin-bottom: 1.35rem !important;
  }

  body.gl-site .vt-footer__marquee-track {
    font-size: 0.68rem !important;
    letter-spacing: 0.14em !important;
    gap: 1.25rem !important;
  }

  body.gl-site .vt-footer__email {
    max-width: 100%;
    min-height: 44px;
    border-radius: 12px !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
  }

  body.gl-site .vt-footer__cta {
    width: 100%;
    justify-content: center;
  }

  body.gl-site .vt-footer__bottom {
    align-items: flex-start;
  }

  .is-premium-home .vt-btn {
    min-height: 48px;
  }
}

/* Coarse pointers: kill heavy fixed decorations that hurt scrolling */
@media (max-width: 991px) and (pointer: coarse) {
  .is-premium-home {
    background-attachment: scroll !important;
  }

  .is-premium-home .vt-hero__spotlight {
    display: none;
  }

  .is-premium-home .vt-noise {
    opacity: 0.03;
  }
}
