/**

 * pmgix — Responsive Styles

 * Breakpoints: 640px (sm) | 768px (md) | 1024px (lg)

 */



/* ── Design token adjustments ── */

@media (min-width: 768px) {

  :root {

    --container-padding: var(--space-6);

    --font-size-3xl: 2.5rem;

    --font-size-4xl: 3.5rem;

  }



  .section {

    padding-block: var(--space-16);

  }

}



@media (min-width: 1024px) {

  :root {

    --container-padding: var(--space-8);

    --header-height: 5.5rem;

    --header-nav-size: 1rem;

    --header-logo-height: 3.5rem;

    --grid-gap-lg: var(--space-10);

  }



  .section {

    padding-block: var(--space-20);

  }

}



/* ── Grids ── */

@media (min-width: 640px) {

  .grid--cards {

    grid-template-columns: repeat(2, 1fr);

  }

  .credibility-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }



  .grid--footer {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .footer__column--brand {
    grid-column: 1 / -1;
  }

}



@media (min-width: 768px) {
  .pillar-card__media {

    min-height: 12rem;

    aspect-ratio: var(--section-media-ratio);

  }



  .grid--industries {

    grid-template-columns: repeat(3, 1fr);

  }



  .grid--insights {

    grid-template-columns: repeat(2, 1fr);

  }

  .grid--insights-categories {

    grid-template-columns: repeat(2, 1fr);

  }

  .insights-featured__grid {

    grid-template-columns: repeat(2, 1fr);

  }

  .periodic-reports__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
  }

  .periodic-report-card {
    height: 100%;
  }

}



@media (min-width: 1024px) {

  .grid--cards {

    grid-template-columns: repeat(3, 1fr);

    gap: var(--grid-gap-lg);

  }

  .credibility-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-5);
  }



  .positioning-pillars__title {

    font-size: var(--font-size-3xl);

  }



  .positioning-pillars__grid {

    gap: var(--space-8);

  }

  .positioning-pillars__header {

    margin-bottom: var(--space-10);

  }



  .pillar-card__media {

    min-height: 14rem;

    aspect-ratio: var(--section-media-ratio);

  }



  .pillar-card__base {

    padding: var(--space-6);

    gap: var(--space-4);

  }



  .pillar-card__title {

    font-size: var(--font-size-lg);

  }



  .pillar-card__text {

    padding-inline-start: calc(3px + var(--space-4));

  }



  .grid--industries {

    grid-template-columns: repeat(4, 1fr);

  }



  .grid--insights {

    grid-template-columns: repeat(3, 1fr);

  }

  .grid--insights-categories {

    grid-template-columns: repeat(3, 1fr);

  }

  .insights-featured__grid {

    grid-template-columns: repeat(3, 1fr);

  }



  .grid--footer {
    grid-template-columns: 1.35fr 0.85fr 0.85fr 1.1fr minmax(0, 1fr);
    align-items: start;
    gap: var(--space-8);
  }

  .footer__column--social .footer__icon-list {
    flex-wrap: nowrap;
    gap: 0.375rem;
  }

  .footer__column--social .footer__icon-btn {
    width: 2.5rem;
    height: 2.5rem;
  }

  .footer__column--brand {
    grid-column: auto;
  }

  .footer__logo-img {
    --footer-logo-height: 4.5rem;
    max-width: 18rem;
  }

  .footer__bottom {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }



  .layout--sidebar {

    grid-template-columns: 16rem 1fr;

    gap: var(--space-12);

  }



  .contact__layout {

    display: grid;

    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);

    gap: var(--space-12);

    align-items: start;

  }

  .contact-form__row--2 {

    grid-template-columns: repeat(2, minmax(0, 1fr));

  }

  .contact-rfp {

    position: sticky;

    top: calc(var(--header-height) + var(--space-6));

  }

}



@media (min-width: 1024px) {

  .header__logo-img {

    max-width: 14rem;

  }

}



@media (max-width: 479px) {

  .header__utility-btn--search {
    width: 2.5rem;
    height: 2.5rem;
  }

  .header__utility-icon--search {
    width: 1.375rem;
    height: 1.375rem;
  }

  .header__utility-btn--locale {
    max-width: min(9.5rem, 32vw);
    height: 2.25rem;
    padding-inline: 0.25rem;
  }

  .header__locale-label {
    font-size: 0.75rem;
  }

  .header__utility-icon {
    width: 1.125rem;
    height: 1.125rem;
  }

  .header__utility-panel {
    right: -0.5rem;
    min-width: min(16rem, calc(100vw - 2rem));
  }


}

@media (max-width: 767px) {

  .header__locale-label {
    display: none;
  }

  .header__utility-btn--locale {
    width: 2.25rem;
    max-width: none;
    padding: 0;
  }

  .header__locale-caret {
    display: none;
  }

  .header__search-form {
    max-width: none;
    gap: var(--space-3);
    padding-inline: 0;
  }

  .header__search-close {
    width: 2.5rem;
    height: 2.5rem;
  }

}

@media (min-width: 1200px) {

  .header__nav {

    display: block;

  }



  .header__menu-toggle {

    display: none;

  }



  .header__mobile-nav {

    display: none;

  }

  .header__utilities {
    gap: 0.25rem;
    margin-inline-end: 0.25rem;
  }

}

@media (min-width: 1200px) and (max-width: 1439px) {

  .header__mega-menu--services,
  .header__mega-menu--industries {
    width: min(44rem, calc(100vw - 1.5rem));
  }

  .header__mega-links--service-columns {
    columns: 2;
    column-gap: 1.75rem;
  }

}



@media (min-width: 1024px) and (max-width: 1199px) {

  :root {

    --header-nav-size: 0.875rem;

    --header-logo-height: 3.125rem;

  }



  .header__nav-list {

    gap: 1.125rem;

  }



  .header__logo-img {

    max-width: 11rem;

  }

}



/* ── Advisory capabilities ── */

@media (min-width: 640px) {

  .approach-highlights__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-5);
  }

  .project-process__timeline {
    gap: var(--space-6);
  }

  .service-document-capabilities__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

}

@media (min-width: 1024px) {

  .project-process__hero {
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    gap: clamp(var(--space-10), 4vw, var(--space-16));
  }

  .company-overview-section .project-process__hero {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(var(--space-8), 3vw, var(--space-12));
  }

  .services-overview-section .project-process__hero {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: clamp(var(--space-6), 2.5vw, var(--space-10));
    align-items: center;
  }

  .service-detail-section .project-process__hero {
    grid-template-columns: minmax(0, 1fr);
  }

  .service-detail-content {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    gap: clamp(var(--space-5), 2vw, var(--space-7));
    align-items: start;
  }

  .service-detail-content__block + .service-detail-content__block {
    margin-top: 0;
  }

  .strategic-advisory-hero .strategic-advisory-panel {
    max-width: min(100%, 64rem);
    margin-inline: auto;
  }

  .service-detail-content--strategic {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }

  .project-process__panel {
    padding: clamp(var(--space-8), 3.4vw, var(--space-12));
  }

  .strategic-advisory-panel.project-process__panel {
    padding: 0;
  }

  .project-process__timeline {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: stretch;
    gap: var(--space-6);
    margin-top: clamp(var(--space-10), 4.5vw, var(--space-14));
  }

  .project-process__timeline::before {
    top: 1.5rem;
    right: 12.5%;
    bottom: auto;
    left: 12.5%;
    width: auto;
    height: 1px;
    background: linear-gradient(90deg, rgba(37, 150, 190, 0.34) 0%, rgba(216, 86, 4, 0.28) 100%);
    transform: none;
  }

  .project-step {
    padding-top: 3.5rem;
  }

  .project-step__card {
    min-height: 100%;
  }

  .approach-highlights > .container {
    max-width: none;
    width: 100%;
    margin-inline: 0;
    padding-inline-start: clamp(var(--space-12), 4.2vw, var(--space-16));
    padding-inline-end: max(
      clamp(var(--space-6), 2.8vw, var(--space-10)),
      calc((100vw - var(--container-max-width)) / 2 + var(--container-padding))
    );
  }

  .approach-highlights__layout {
    grid-template-columns: minmax(0, 1.22fr) minmax(22rem, 0.78fr);
    gap: clamp(0.35rem, 0.9vw, 0.9rem);
    align-items: stretch;
  }

  .approach-highlights__title-line {
    white-space: nowrap;
  }

  .approach-highlights__media {
    display: flex;
    align-self: stretch;
    width: clamp(34rem, 53vw, 46rem);
    max-width: 100%;
    justify-self: end;
    margin-inline-end: clamp(0.1rem, 0.35vw, 0.35rem);
    border-radius: var(--section-media-radius);
  }

  .approach-highlights__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 1fr;
    gap: var(--space-5);
    align-self: stretch;
  }

  .approach-highlight-card {
    min-height: 11rem;
  }

  .approach-highlights__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: right center;
  }

}

@media (min-width: 640px) {

  .advisory-capabilities__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-6);
  }

}

@media (min-width: 1024px) {

  .advisory-capabilities__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-8);
  }

  .advisory-capabilities__title {
    font-size: var(--font-size-3xl);
  }

  .home-services-capabilities__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-6);
  }

}

@media (min-width: 1440px) {

  .advisory-capabilities__grid {
    grid-template-columns: repeat(3, 1fr);
  }

}

/* ── Strategic statement ── */

@media (max-width: 767px) {

  .project-process {
    padding-top: var(--space-8);
    padding-bottom: var(--space-10);
  }

  .project-process__lead {
    padding-inline-start: var(--space-4);
    line-height: 1.7;
  }

  .project-process__media,
  .project-process__image {
    min-height: 13rem;
  }

  .company-overview-section .project-process__media {
    width: 100%;
    max-width: none;
    min-height: clamp(16rem, 52vw, 22rem);
  }

  .services-overview-section .project-process__media {
    max-width: min(100%, 24rem);
    min-height: clamp(13.5rem, 45vw, 17rem);
  }

  .services-overview-table {
    margin-top: var(--space-7);
  }

  .services-overview-table__scroll {
    border-radius: 0.85rem;
  }

  .services-overview-table__element {
    min-width: 44rem;
  }

  .services-overview-table__element thead th,
  .services-overview-table__element tbody td {
    padding: 0.75rem 0.85rem;
  }

  .home-services-capabilities__brand {
    font-size: clamp(var(--font-size-lg), 6vw, var(--font-size-2xl));
    letter-spacing: 0.02em;
  }

  .home-services-capabilities__lead {
    white-space: nowrap;
    font-size: clamp(0.6875rem, 2.8vw, var(--font-size-base));
    line-height: 1.35;
  }

  .home-services-capabilities__grid .purpose-card__text {
    font-size: clamp(var(--font-size-base), 3.6vw, var(--font-size-md));
  }

  .home-services-capabilities__grid .purpose-card {
    min-height: 12.5rem;
  }

  .home-services-capabilities__grid .purpose-card__phase {
    min-height: 4.75rem;
    font-size: clamp(var(--font-size-base), 3.5vw, var(--font-size-lg));
  }

  .home-services-capabilities__grid .purpose-card__body {
    min-height: 7rem;
  }

  .home-services-capabilities__tagline {
    gap: var(--space-3);
    font-size: clamp(var(--font-size-md), 4.2vw, var(--font-size-xl));
  }

  .services-principles-section .purpose-grid {
    grid-template-columns: 1fr;
  }

  .service-detail-content__block {
    padding: var(--space-5);
    border-radius: 0.8rem;
  }

  .service-detail-content__title {
    margin-bottom: var(--space-3);
  }

  .service-detail-content__list {
    gap: 0.42rem;
  }

  .strategic-advisory-panel__lead-group {
    gap: var(--space-2);
  }

  .service-detail-content--strategic .service-detail-content__block + .service-detail-content__block {
    margin-top: var(--space-6);
    padding-top: var(--space-4);
  }

  .project-step {
    padding-top: calc(var(--space-3) + 0.5rem);
  }

  .project-step__number {
    left: 50%;
  }

  .project-step__card {
    padding: 0 var(--space-5) var(--space-5);
  }

  .project-step__phase {
    min-height: 3.2rem;
    margin-inline: calc(var(--space-5) * -1);
    font-size: 0.98rem;
  }

  .approach-highlights__media,
  .approach-highlights__image {
    min-height: 18rem;
  }

  .approach-highlight-card::before {
    inset: var(--space-4) auto var(--space-4) var(--space-4);
  }

  .strategic-statement {
    margin-top: clamp(-1.25rem, -5vw, -0.5rem);
    padding-block-start: var(--space-4);
    padding-block-end: var(--space-8);
  }

  .strategic-statement__stage {
    padding-inline: var(--space-2);
  }

  .strategic-statement__media {
    width: 100%;
  }

  .strategic-statement__media,
  .strategic-statement__image {
    min-height: clamp(17.6rem, 61.6vw, 26.4rem);
  }

  .strategic-statement__media::after {
    background: linear-gradient(
      180deg,
      transparent 40%,
      rgba(0, 0, 0, 0.55) 100%
    );
  }

  .strategic-statement__slogan {
    top: var(--space-3);
    right: var(--space-3);
    bottom: auto;
    left: auto;
    transform: none;
    width: auto;
    max-width: min(12.5rem, calc(100% - var(--space-6)));
    padding: 0.625rem 0.875rem;
    border-radius: 0.875rem;
  }

  .strategic-statement__tagline {
    font-size: clamp(0.72rem, 2.3vw, 0.88rem);
  }

  .strategic-statement__tagline-brand {
    font-size: 1em;
  }

  .strategic-statement {
    --strategic-statement-heading-size: clamp(1.5rem, 5.5vw, 2rem);
    --strategic-statement-spacer-size: clamp(1.875rem, 6.3vw, 2.25rem);
  }

  .strategic-statement__heading-panel {
    top: auto;
    right: auto;
    bottom: var(--space-3);
    left: var(--space-3);
    max-width: min(15rem, calc(100% - var(--space-6)));
    padding: 0;
  }

  .strategic-statement__heading-panel::before {
    margin-bottom: var(--space-3);
  }

  .strategic-statement__line {
    white-space: normal;
  }

  .strategic-statement__line--accent {
    font-size: 1.08em;
  }

}



@media (min-width: 1024px) {

  .strategic-statement__stage {
    padding-inline: var(--space-3) var(--space-2);
  }

  .strategic-statement__heading-panel {
    left: clamp(var(--space-6), 4vw, var(--space-12));
    bottom: clamp(var(--space-6), 4vw, var(--space-12));
    max-width: min(33rem, 42vw);
  }

  .strategic-statement {
    --strategic-statement-heading-size: clamp(2rem, 1.6vw + 0.95rem, 2.75rem);
  }

  .strategic-statement__slogan {
    width: auto;
    max-width: min(18rem, 28vw);
    padding: clamp(0.7rem, 0.8vw, 0.95rem) clamp(0.95rem, 1vw, 1.15rem);
  }

  .strategic-statement__tagline {
    font-size: clamp(0.82rem, 0.25vw + 0.75rem, 1rem);
  }

  .strategic-statement__tagline-brand {
    font-size: 1em;
  }

  .strategic-statement__media,
  .strategic-statement__image {
    min-height: clamp(26.4rem, 68.2vh, 48.4rem);
  }

}



/* ── Hero video ── */

@media (max-width: 767px) {

  .hero-video {
    margin-top: clamp(-1.75rem, -8vw, -0.75rem);
    min-height: auto;
  }

  .hero-video__content {
    padding:
      var(--space-10)
      var(--container-padding)
      var(--space-8);
  }



  .hero__scroll-hint {

    bottom: var(--space-6);

  }



  .hero__content {

    padding-block-start: calc(var(--header-height) + var(--space-8));

    padding-block-end: var(--space-16);

  }



  .hero__line {

    font-size: clamp(1.0625rem, 4.5vw, 1.5625rem);

    letter-spacing: -0.02em;

  }



  .hero__subtitle {

    margin-top: var(--space-6);

    max-width: none;

    padding-inline-start: var(--space-4);

    font-size: 1.0625rem;

  }

}



@media (min-width: 1024px) {

  .hero-video {
    margin-top: clamp(-6rem, -6vw, -3rem);
    min-height: clamp(40rem, 88vh, 54rem);
  }

}


