/* Phone and compact-tablet layouts. Desktop chapters retain their original design. */
@media (max-width: 980px) {
  html { --chapter-nav: 76px; scroll-padding-top: 92px; scroll-snap-type: none; }
  html.scroll-story-page { scroll-snap-type: none; }
  .web2 .glass-nav {
    height: 76px; gap: 16px; padding-inline: max(22px, env(safe-area-inset-left));
  }
  .web2 .glass-nav > nav, .web2 .glass-nav > .header-cta { display: none; }
  .web2 .glass-nav .brand { flex: 0 0 auto; width: 155px; height: 18px; }
  .web2 .mobile-toggle {
    display: inline-flex; align-items: center; justify-content: center; gap: 12px;
    min-width: 76px; min-height: 44px; margin-left: auto; padding: 10px 0 10px 12px;
    border: 0; background: transparent; font-size: 14px;
  }
  .web2 .mobile-toggle span { color: #d0a175; }
  .web2 .mobile-menu {
    display: grid; gap: 0; position: absolute; top: 76px; left: 14px; right: 14px;
    max-height: calc(100svh - 92px); max-height: calc(100dvh - 92px);
    overflow-y: auto; overscroll-behavior: contain; padding: 16px 20px;
    border: 1px solid #ffffff24; border-radius: 14px; background: #12151bf5;
    box-shadow: 0 16px 45px #0005;
  }
  .web2 .mobile-menu[hidden] { display: none; }
  .web2 .mobile-menu > a { display: flex; align-items: center; min-height: 48px; margin: 0; padding: 9px 0; font-size: 17px; }
  .web2 main > section, .web2 .photo-row, .web2 > footer { scroll-snap-align: none; }
  .web2 main > :is(.content-band, .overview, .industries-section, .company-section, .page-next),
  .web2 .photo-row, .web2 .footer-callout, .web2 .footer-directory { min-height: 0; }
  .web2 main > :is(.content-band, .overview, .industries-section, .company-section),
  .web2 .page-next, .web2 .footer-callout { padding: 64px 24px; }
  .web2 :is(.section-heading, .industry-heading, .intro-text, .photo-copy, .company-text,
    .detail-grid, .detail-grid > *, .pillars > *, .footer-columns > *, .form-grid > *) { min-width: 0; }
  .web2 :is(h1, h2, h3, p, .line-link, .intro-link, .job-title, .job-description) { overflow-wrap: break-word; }
  .web2 :is(.line-link, .intro-link) { max-width: 100%; gap: 16px; }
  .web2 :is(.line-link, .intro-link) > span { flex: 0 0 auto; }
  .web2 .section-heading h2, .home-web2 :is(.photo-copy, .industries-section, .company-section) h2 {
    font-size: clamp(30px, 8.4vw, 44px); line-height: 1.12;
  }
  .web2.inner-page .editorial-intro { display: block; min-height: 0; padding: 122px 24px 58px; }
  .web2 .editorial-intro h1 { font-size: clamp(38px, 9.5vw, 66px); line-height: 1.08; }
  .web2 .editorial-intro .page-lead { font-size: 17px; line-height: 1.75; margin-top: 24px; }
  .web2 .detail-grid, .web2 .customer-needs .detail-grid { grid-template-columns: 1fr; gap: 34px; margin-top: 34px; }
  .web2 .detail-grid h3 { font-size: 25px; }
  .web2 .service-photograph { padding: 0 24px 48px; }
  .web2 .service-photograph img { height: auto; aspect-ratio: 4 / 3; }
  .web2 .solution-row { grid-template-columns: minmax(0, 1fr) 22px; gap: 16px; padding-block: 28px; }
  .web2 .solution-row h3 { font-size: clamp(25px, 6.6vw, 32px); }
  .web2 .company-pillars { grid-template-columns: 1fr; gap: 32px; }
  .web2 .industry-directory article, .web2 .industry-directory #hospitality { grid-template-columns: 1fr; gap: 28px; min-height: 0; padding-block: 38px; }
  .web2 .industry-map { height: 240px; }
  .web2 .page-next > a { font-size: clamp(27px, 7.4vw, 40px); line-height: 1.2; }

  /* Touch scrolling uses a natural document flow instead of a pinned two-screen hero. */
  .home-web2 .experience { height: auto; }
  .home-web2 .experience .stage { position: relative; height: auto; min-height: 0; padding: 118px 0 30px; }
  .home-web2 .hero-art {
    inset: 290px 0 auto; height: 330px; background-position: center center;
    background-size: auto 100%; transform-origin: center;
  }
  .home-web2 .vignette { background: linear-gradient(#08090b 0%, #08090b00 45%, #08090b 74%); }
  .home-web2 .intro-copy {
    position: relative; inset: auto; margin: 0 auto; padding: 0 22px 250px;
    max-width: 680px; text-align: center;
  }
  .home-web2 .intro-copy .eyebrow { font-size: 9px; line-height: 1.65; letter-spacing: .12em; margin-bottom: 24px; }
  .home-web2 .intro-copy h1 { font-size: clamp(35px, 11.3vw, 68px); line-height: 1.08; }
  .home-web2 .intro-description { max-width: 440px; font-size: 15px; line-height: 1.7; margin-top: 24px; }
  .home-web2 .explore { min-height: 48px; font-size: 13px; padding: 13px 20px; margin-top: 24px; }
  .home-web2 .connection-copy {
    position: relative; inset: auto; max-width: 680px; margin: 0 auto;
    padding: 36px 24px 30px; text-align: center;
  }
  .home-web2 .connection-copy .eyebrow { font-size: 10px; line-height: 1.6; margin-bottom: 18px; }
  .home-web2 .connection-copy h2 { font-size: clamp(30px, 8.4vw, 46px); line-height: 1.16; }
  .home-web2 .stage-bottom { position: relative; inset: auto; margin: 12px 24px 0; justify-content: center; }
  .home-web2 .stage-label { display: none; }
  .home-web2 .scroll-hint { font-size: 11px; }
  .home-web2 .growth-story { height: auto; }
  .home-web2 .growth-stage { position: relative; top: auto; height: auto; min-height: 0; padding: 56px 24px; overflow: visible; }
  .home-web2 .growth-top > p:last-child, .home-web2 .growth-nav { display: none; }
  .home-web2 .growth-panels { min-height: 0; flex: auto; }
  .home-web2 .growth-panel { position: relative; inset: auto; display: block; min-height: 0; margin-top: 34px; padding-bottom: 30px; opacity: 1; visibility: visible; transform: none; border-bottom: 1px solid #ffffff20; text-align: left; }
  .home-web2 .growth-copy h2 { font-size: clamp(58px, 17vw, 86px); margin-bottom: 18px; }
  .home-web2 .growth-copy h3 { font-size: 23px; line-height: 1.25; margin-bottom: 14px; }
  .home-web2 .growth-copy > p { font-size: 16px; line-height: 1.75; margin-inline: 0; max-width: 600px; }
  .home-web2 .growth-bottom { padding-top: 6px; border: 0; }
  .home-web2 .growth-cta { display: inline-flex; align-items: center; min-height: 48px; font-size: 15px; }
  .home-web2 .photo-stories { padding: 16px 24px; }
  .home-web2 .photo-row, .home-web2 .photo-row.reverse { display: grid; grid-template-columns: minmax(0, 1fr); gap: 30px; margin: 0; padding: 40px 0; }
  .home-web2 .photo-row.reverse .photo-frame { order: -1; }
  .home-web2 :is(#technology, #managed) .photo-frame { width: 100%; max-width: 100%; }
  .home-web2 .photo-frame img { aspect-ratio: 4 / 3; }
  .home-web2 .photo-frame figcaption { max-width: calc(100% - 28px); left: 14px; bottom: 14px; padding: 8px 10px; font-size: 10px; }
  .home-web2 .pillars { grid-template-columns: 1fr; gap: 34px; margin-top: 36px; }
  .home-web2 .scope-strip { display: block; margin-top: 36px; padding-top: 28px; }
  .home-web2 .scope-strip p { font-size: 20px; }
  .home-web2 .industry-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; gap: 8px; margin-top: 30px; }
  .home-web2 .industry-options button { min-width: 0; max-width: 100%; min-height: 48px; padding: 10px 12px; font-size: 13px; line-height: 1.4; white-space: normal; text-wrap: balance; }
  .home-web2 #industry-detail { min-height: 0; padding-top: 28px; }
  .home-web2 #industry-detail h3 { font-size: clamp(25px, 6.8vw, 34px); }
  .home-web2 .company-section { display: block; }
  .home-web2 .company-text { margin-top: 28px; }

  /* Directional entrances must not widen the document while they are offscreen. */
  .web2.w2-motion .w2-reveal, .web2.w2-motion .w2-reveal.w2-reveal-visual { transform: translateY(14px); transition-delay: 0ms; }
  .web2.w2-motion .w2-reveal.is-seen, .web2.w2-motion .w2-reveal:focus-within { transform: none; }
  .web2 .industry-directory .industry-enter > :is(.industry-copy, .industry-map) { transform: translateY(14px); }
  .web2 .industry-directory .industry-enter.industry-visible > :is(.industry-copy, .industry-map) { transform: none; }
  .home-web2 .industry-options.w2-reveal:not(.is-seen) button { transform: translateY(8px); }

  .web2 .role-filters { flex-wrap: wrap; gap: 8px; }
  .web2 .role-filters button { min-height: 44px; padding-inline: 14px; }
  .web2 .job-opening summary { gap: 14px; }
  .web2 .job-title { font-size: clamp(23px, 6vw, 30px); }
  .web2 .jd-columns { grid-template-columns: 1fr; gap: 24px; }
  .web2 .job-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 18px; gap: 18px; }
  .page-contact .contact-layout { display: block; padding: 118px 24px 56px; }
  .page-contact .contact-intro { padding: 0; margin-bottom: 28px; }
  .page-contact .contact-intro h1 { font-size: clamp(37px, 9.5vw, 54px); }
  .page-contact .contact-intro h1 br { display: initial; }
  .page-contact .contact-description { max-width: none; font-size: 16px; }
  .page-contact .contact-layout #brief-form { padding: 24px 20px; }
  .page-contact .contact-layout #brief-form .form-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .page-contact .contact-layout #brief-form :is(input, select, textarea) { min-width: 0; max-width: 100%; font-size: 16px; }
  .page-contact .contact-layout #brief-form :is(input, select) { min-height: 48px; }
  .page-contact .contact-layout #brief-form textarea { min-height: 150px; }
  .page-contact .contact-layout #brief-form .brief-submit { width: 100%; min-height: 48px; font-size: 15px; }
  .page-contact .contact-email > a { max-width: 100%; overflow-wrap: anywhere; }
  .page-contact .brief-confirmation { min-height: 0; padding: 32px 24px; }
  .web2 .footer-directory { padding: 44px 24px 26px; }
  .web2 .footer-topline { flex-direction: column; align-items: flex-start; gap: 24px; }
  .web2 .social-block { text-align: left; }
  .web2 .social-links { flex-wrap: wrap; gap: 10px; }
  .web2 .social-links a.social-icon { display: grid; place-items: center; width: 44px; height: 44px; padding: 10px; }
  .web2 .footer-directory .footer-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 36px 0 28px; gap: 28px 20px; }
  .web2 .footer-columns > div > a { overflow-wrap: break-word; font-size: 14px; }
  .web2 .footer-directory .footer-bottom { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; font-size: 11px; }
  .web2 .footer-bottom > div { display: flex; flex-wrap: wrap; gap: 16px; }
  .legal-page .legal-intro { padding: 122px 24px 44px; }
  .legal-page .legal-layout { display: block; padding: 36px 24px 60px; }
  .legal-page .legal-sidebar { position: static; width: auto; margin-bottom: 32px; padding: 0 0 26px; }
  .legal-page .legal-sidebar nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; }
  .legal-page .legal-section { grid-template-columns: 20px minmax(0, 1fr); gap: 12px; }
}
@media (max-width: 380px) {
  .web2 main > :is(.content-band, .overview, .industries-section, .company-section),
  .web2 .page-next, .web2 .footer-callout, .web2 .footer-directory,
  .web2.inner-page .editorial-intro, .page-contact .contact-layout { padding-inline: 20px; }
  .home-web2 .intro-copy { padding-inline: 20px; }
  .home-web2 .industry-options button { font-size: 12px; padding-inline: 8px; }
  .web2 .job-facts { grid-template-columns: 1fr; }
  .page-contact .contact-layout #brief-form { padding: 22px 16px; }
}
@media (max-width: 980px) and (prefers-reduced-motion: reduce) {
  .web2.w2-motion .w2-reveal, .web2 .industry-directory .industry-enter > :is(.industry-copy, .industry-map) { transform: none; }
}
