/**
 * PISC service + GRC pages — responsive layout (mobile / tablet).
 * Load last. Breakpoints: 1024px tablet · 768px mobile · 480px small phone.
 */

/* Prevent horizontal scroll from grids / Elementor */
body.pisc-grc-recruitment-page .elementor-location-single,
body.pisc-grc-recruitment-page .entry-content,
.pisc-grc-page,
.pisc-service-page {
  overflow-x: clip;
  max-width: 100%;
}

.pisc-grc-page .e-con,
.pisc-service-page .e-con,
.pisc-grc-page .e-con > .e-con-inner,
.pisc-service-page .e-con > .e-con-inner {
  max-width: 100%;
  box-sizing: border-box;
}

.pisc-grc-page img,
.pisc-service-page img,
.pisc-grc-page video,
.pisc-service-page video {
  max-width: 100%;
  height: auto;
}

/* Readable line breaks in headings */
.pisc-grc-page .hero__title .elementor-heading-title,
.pisc-service-page .hero__title .elementor-heading-title,
.pisc-grc-page .section-title .elementor-heading-title,
.pisc-service-page .section-title .elementor-heading-title {
  overflow-wrap: break-word;
  word-wrap: break-word;
  hyphens: manual;
}

/* ========== Tablet (≤1024px) ========== */
@media (max-width: 1024px) {
  .pisc-grc-page .hero__inner,
  .pisc-service-page .hero__inner,
  .pisc-grc-page .e-con.hero__inner,
  .pisc-service-page .e-con.hero__inner {
    padding-inline: clamp(1rem, 4vw, 1.5rem);
  }

  .pisc-grc-page .container,
  .pisc-service-page .container {
    padding-inline: clamp(1rem, 4vw, 1.5rem);
  }
}

/* ========== Mobile (≤768px) ========== */
@media (max-width: 768px) {
  .pisc-grc-page .hero,
  .pisc-service-page .hero,
  .pisc-grc-page .e-con.hero,
  .pisc-service-page .e-con.hero {
    min-height: clamp(420px, 72vh, 600px) !important;
  }

  .pisc-grc-page .hero__inner,
  .pisc-service-page .hero__inner,
  .pisc-grc-page .e-con.hero__inner,
  .pisc-service-page .e-con.hero__inner {
    grid-template-columns: 1fr !important;
    gap: var(--space-8);
    padding-block: clamp(var(--space-12), 8vw, var(--space-20));
  }

  .pisc-grc-page .hero__content,
  .pisc-service-page .hero__content {
    max-width: 100%;
  }

  .pisc-grc-page .hero__visual,
  .pisc-service-page .hero__visual {
    justify-content: flex-start;
    width: 100%;
  }

  .pisc-grc-page .svc-nav,
  .pisc-service-page .svc-nav {
    max-width: 100%;
    width: 100%;
  }

  .pisc-grc-page .hero__title .elementor-heading-title,
  .pisc-service-page .hero__title .elementor-heading-title {
    font-size: clamp(1.5rem, 6vw, 2rem);
    line-height: 1.15;
  }

  .pisc-grc-page .hero__desc p,
  .pisc-service-page .hero__desc p,
  .pisc-grc-page .hero__desc .elementor-widget-container,
  .pisc-service-page .hero__desc .elementor-widget-container {
    font-size: var(--text-sm);
  }

  .pisc-grc-page .section,
  .pisc-service-page .section {
    padding-block: clamp(var(--space-12), 6vw, var(--space-20));
  }

  .pisc-grc-page .section-title .elementor-heading-title,
  .pisc-service-page .section-title .elementor-heading-title {
    font-size: clamp(1.35rem, 5vw, 1.75rem);
  }

  .pisc-grc-page .section-subtitle,
  .pisc-service-page .section-subtitle,
  .pisc-grc-page .section-intro,
  .pisc-service-page .section-intro {
    max-width: 100%;
  }

  .pisc-grc-page .e-con.track-card,
  .pisc-service-page .e-con.track-card {
    padding-block: 1.5rem !important;
    padding-inline: 1.25rem !important;
  }

  .pisc-grc-page .comparison-table__cell,
  .pisc-service-page .comparison-table__cell {
    padding: var(--space-4);
    min-height: 0;
  }

  .pisc-grc-page .comparison-table__col-title .elementor-heading-title,
  .pisc-service-page .comparison-table__col-title .elementor-heading-title {
    padding: var(--space-4);
    font-size: var(--text-sm);
  }

  .pisc-grc-page .comparison-table__text p,
  .pisc-service-page .comparison-table__text p {
    font-size: var(--text-xs);
  }

  .pisc-grc-page .process__tabs,
  .pisc-service-page .process__tabs {
    gap: var(--space-2);
  }

  .pisc-grc-page .process__tab,
  .pisc-service-page .process__tab {
    font-size: var(--text-xs);
    padding: var(--space-2) var(--space-4);
  }

  .pisc-grc-page .cta-banner__inner,
  .pisc-service-page .cta-banner__inner {
    padding-inline: clamp(1rem, 4vw, 1.5rem);
  }

  .pisc-service-page .faq-list {
    margin-inline: 0;
    max-width: 100%;
  }

  .pisc-service-page summary.faq-item__question {
    padding: var(--space-4) var(--space-5);
    font-size: var(--text-sm);
  }

  /* Service pages: keep left-aligned hero on mobile */
  .pisc-service-page:not(.pisc-grc-page) .hero__inner,
  .pisc-service-page:not(.pisc-grc-page) .e-con.hero__inner {
    justify-items: stretch !important;
    text-align: start !important;
  }
}

/* ========== Small phone (≤480px) ========== */
@media (max-width: 480px) {
  .pisc-grc-page .hero__actions,
  .pisc-service-page .hero__actions {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    gap: var(--space-3);
  }

  .pisc-grc-page .hero__actions .elementor-widget-button,
  .pisc-service-page .hero__actions .elementor-widget-button {
    width: 100%;
    max-width: 100%;
  }

  .pisc-grc-page .hero__actions .elementor-button,
  .pisc-service-page .hero__actions .elementor-button,
  .pisc-grc-page .btn-primary .elementor-button,
  .pisc-service-page .btn-primary .elementor-button,
  .pisc-grc-page .btn-ghost .elementor-button,
  .pisc-service-page .btn-ghost .elementor-button {
    width: 100%;
    justify-content: center;
    min-height: 44px;
    padding-block: 0.85rem !important;
  }

  .pisc-grc-page .cta-banner__actions .elementor-button,
  .pisc-service-page .cta-banner__actions .elementor-button {
    width: 100%;
    max-width: 100%;
    min-height: 44px;
  }

  .pisc-service-page .stats-grid,
  .pisc-grc-page .stats-strip {
    grid-template-columns: 1fr !important;
  }

  .pisc-grc-page .stats-strip,
  .pisc-service-page .stats-strip {
    gap: var(--space-3);
  }

  .pisc-grc-page .service-card__number,
  .pisc-service-page .service-card__number {
    font-size: 2.25rem;
  }

  .pisc-grc-page .why__pull,
  .pisc-service-page .why__pull {
    padding: var(--space-5);
    font-size: var(--text-lg);
  }

  .pisc-grc-page .domains-grid,
  .pisc-service-page .domains-grid {
    grid-template-columns: 1fr !important;
  }

  .pisc-service-page .resources-nav__link {
    justify-content: center;
    width: 100%;
    box-sizing: border-box;
  }
}

/* Touch targets */
@media (max-width: 768px) and (pointer: coarse) {
  .pisc-grc-page .svc-nav__link,
  .pisc-service-page .svc-nav__link {
    padding-block: var(--space-5);
    min-height: 44px;
    display: flex;
    align-items: center;
  }
}
