/* Image-led About, native Elementor content. Intentionally no desktop declarations. */
@media (max-width:767px) {
  body.family-field :is(.elementor-8,.elementor-103) .ac-section.tpi-mobile-about {
    padding:40px 0!important;
  }
  body.family-field .ac-section.tpi-mobile-about .ac-shell { width:calc(100% - 40px); }
  body.family-field .ac-section.tpi-mobile-about :is(h1,h2,h3,p,a) {
    overflow-wrap:anywhere; word-break:normal; hyphens:none;
  }
  body.family-field .ac-section.tpi-mobile-about h2 { font-size:clamp(28px,8vw,36px)!important; line-height:1.15; }
  body.family-field .ac-section.tpi-mobile-about h3 { font-size:23px!important; line-height:1.25; }
  body.family-field .ac-section.tpi-mobile-about p { font-size:16px!important; line-height:1.6; }
  body.family-field .ac-section.tpi-mobile-about .ac-lead { font-size:20px!important; }
  body.family-field .ac-section.tpi-mobile-about .ac-kicker { font-size:13px!important; letter-spacing:.12em; margin-bottom:16px; }
  body.family-field .ac-section.tpi-mobile-about .ac-caption { font-size:13px!important; }
  body.family-field .ac-section.tpi-mobile-about :is(.ac-button,.ac-button .elementor-button) { width:100%; min-height:52px; }
  body.family-field .ac-section.tpi-mobile-about .elementor-button { white-space:normal; }

  /* Grid overlap can grow with text zoom; the heading is never clipped to a fixed height. */
  body.family-field :is(.elementor-8,.elementor-103) .ac-section.ac-hero.tpi-mobile-about { padding:0!important; }
  body.family-field .ac-section.tpi-mobile-about .ac-hero-grid { width:100%; grid-template-columns:minmax(0,1fr); gap:0; min-height:550px; isolation:isolate; }
  body.family-field .ac-section.tpi-mobile-about :is(.ac-hero-copy,.ac-hero-media) { grid-area:1 / 1; min-width:0; }
  body.family-field .ac-section.tpi-mobile-about .ac-hero-copy { z-index:2; align-self:end; padding:160px 20px 64px; }
  body.family-field .ac-section.tpi-mobile-about .ac-hero-copy h1 { font-size:clamp(32px,9vw,40px)!important; line-height:1.12; margin-bottom:24px; color:#fff; text-wrap:balance; }
  body.family-field .ac-section.tpi-mobile-about .ac-hero-copy .ac-kicker { color:var(--accent,#ea7d00); }
  body.family-field .ac-section.tpi-mobile-about .ac-hero-media { position:relative; height:100%; }
  body.family-field .ac-section.tpi-mobile-about .ac-hero-media::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.03) 0%,rgba(0,0,0,.7) 60%,rgba(0,0,0,.9) 100%); pointer-events:none; }
  body.family-field .ac-section.tpi-mobile-about .ac-hero-photo { height:100%; min-height:550px; }
  body.family-field .ac-section.tpi-mobile-about .ac-hero-photo .elementor-widget-image { position:absolute; inset:0; }
  body.family-field .ac-section.tpi-mobile-about .ac-hero-media .elementor-widget-text-editor { position:absolute; bottom:15px; left:20px; right:20px; z-index:3; }
  body.family-field .ac-section.tpi-mobile-about .ac-hero-media .ac-caption { color:#eee; margin:0; }

  body.family-field .ac-section.tpi-mobile-about .ac-story-grid { gap:26px; }
  body.family-field .ac-section.tpi-mobile-about .ac-story-copy h2 { font-size:32px!important; margin-bottom:18px; }
  body.family-field .ac-section.tpi-mobile-about .ac-story-collage { order:-1; }
  body.family-field .ac-section.tpi-mobile-about .ac-story-copy p { max-width:none; }
  body.family-field .ac-section.tpi-mobile-about .ac-disciplines { margin-top:26px; padding-top:18px; gap:14px; }
  body.family-field .ac-section.tpi-mobile-about .ac-disciplines p { gap:8px; }
  body.family-field .ac-section.tpi-mobile-about .ac-purpose-grid { gap:24px; margin-top:24px; padding:24px 0 32px; }
  body.family-field .ac-section.tpi-mobile-about .ac-purpose-grid h3 { font-size:27px!important; margin:10px 0 14px; }
  body.family-field .ac-section.tpi-mobile-about .ac-purpose-grid p:last-child { font-size:18px!important; }
  body.family-field .ac-section.tpi-mobile-about .ac-purpose-photo { height:auto; aspect-ratio:4 / 3; }
  body.family-field .ac-section.tpi-mobile-about .ac-section-top { margin-bottom:24px; }
  body.family-field .ac-section.tpi-mobile-about .ac-expertise-grid { grid-template-columns:minmax(0,1fr); gap:30px; }
  body.family-field .ac-section.tpi-mobile-about .ac-expert .ac-photo { height:auto; aspect-ratio:4 / 3; margin-bottom:16px; }
  body.family-field .ac-section.tpi-mobile-about .ac-expert h3 { font-size:25px!important; margin:8px 0; }
  body.family-field .ac-section.tpi-mobile-about .ac-number { font-size:17px!important; }
  body.family-field .ac-section.tpi-mobile-about .ac-bottom-note { margin-top:26px; padding-top:16px; }
  body.family-field .ac-section.tpi-mobile-about .ac-process-grid { gap:20px; }
  body.family-field .ac-section.tpi-mobile-about .ac-step { grid-template-columns:34px minmax(0,1fr); gap:14px; padding:20px 0; }
  body.family-field .ac-section.tpi-mobile-about .ac-step-number { font-size:27px!important; }
  body.family-field .ac-section.tpi-mobile-about .ac-step h3 { font-size:20px!important; }
  body.family-field .ac-section.tpi-mobile-about .ac-step-icon { display:none; }
  body.family-field .ac-section.tpi-mobile-about .ac-principles-grid { gap:24px; }
  body.family-field .ac-section.tpi-mobile-about .elementor-toggle .elementor-tab-title { font-size:18px; padding:22px 0; line-height:1.4; }
  body.family-field .ac-section.tpi-mobile-about .elementor-toggle .elementor-tab-content { padding:0 0 22px; }
  body.family-field .ac-section.tpi-mobile-about .elementor-toggle .elementor-tab-title a { min-height:44px; align-items:center; }

  /* Use all existing original logos, including their existing light/dark variants. */
  body.family-field .ac-section.tpi-mobile-about .ac-companies { grid-template-columns:minmax(0,1fr); gap:0; padding-top:0; }
  body.family-field .ac-section.tpi-mobile-about .ac-company { display:grid; grid-template-columns:minmax(110px,.85fr) minmax(0,1.15fr); align-items:center; gap:20px; padding:16px 0; border-bottom:1px solid var(--ac-rule); text-align:left; }
  body.family-field .ac-section.tpi-mobile-about .ac-company .ac-logo { height:115px; }
  body.family-field .ac-section.tpi-mobile-about .ac-company p { font-size:16px!important; margin:0; }
  body.family-field .ac-section.tpi-mobile-about .ac-parent-company { max-width:200px; margin:20px auto; }
  body.family-field .ac-section.tpi-mobile-about .ac-parent-company .ac-logo { height:130px; }
  body.family-field .ac-section.tpi-mobile-about.ac-group .ac-logo img { object-fit:contain; transform:none; }
  body.family-field .ac-section.tpi-mobile-about.ac-contact { --ac-paper:#1b1c18; --ac-ink:#f4f1e8; --ac-muted:#deded4; --ac-rule:#62635b; --ac-kicker:var(--accent,#ea7d00); }
  body.family-field .ac-section.tpi-mobile-about.ac-contact .ac-logo-light { display:none!important; }
  body.family-field .ac-section.tpi-mobile-about.ac-contact .ac-logo-dark { display:block!important; }
  body.family-field .ac-section.tpi-mobile-about .ac-contact-grid { gap:30px; }
  body.family-field .ac-section.tpi-mobile-about .ac-contact-grid h2 { font-size:36px!important; margin-bottom:20px; }
  body.family-field .ac-section.tpi-mobile-about .ac-actions { flex-direction:column; align-items:stretch; gap:12px; margin-top:24px; }
  body.family-field .ac-section.tpi-mobile-about .ac-actions .elementor-widget-button { width:100%; }
  body.family-field .ac-section.tpi-mobile-about .ac-contact-details > div { padding:18px 0; gap:8px; }
  body.family-field .ac-section.tpi-mobile-about .ac-contact-details a,
  body.family-field .ac-section.tpi-mobile-about .ac-mini-footer a { display:inline-flex; align-items:center; min-height:44px; font-size:16px; }
  body.family-field .ac-section.tpi-mobile-about .ac-mini-footer { margin-top:32px; gap:16px; }
}
