/* Mobile layout corrections layered over the generated Next.js stylesheet. */
@media (max-width: 760px) {
  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
  }

  .siteHeader,
  .hero .siteHeader {
    gap: 16px;
  }

  .brand {
    min-width: 0;
  }

  .mobileMenu,
  .headerCta {
    flex: 0 0 auto;
  }

  .hero h1,
  .manifesto h2,
  .sectionHeading h2,
  .pageHero h1,
  .aboutCopy h1,
  .briefHero h1,
  .ctaBand h2,
  .footerTop h2 {
    text-wrap: balance;
  }

  .button {
    gap: 16px;
    padding-inline: 20px;
  }

  .heroProof {
    column-gap: 8px;
    row-gap: 10px;
  }

  .heroPortrait {
    height: clamp(470px, 145vw, 560px);
  }

  .aboutPhoto {
    height: clamp(500px, 150vw, 610px);
  }

  .serviceRow,
  .serviceRow > div,
  .serviceRow ul,
  .caseMeta,
  .caseBody,
  .briefForm {
    min-width: 0;
  }

  .briefForm input,
  .briefForm textarea {
    font-size: 16px;
  }

  .caseBody li::before {
    content: "✓\FE0E";
    font-family: Arial, sans-serif;
  }
}

@media (max-width: 380px) {
  .siteHeader,
  .hero .siteHeader {
    gap: 12px;
    height: 78px;
    padding-inline: 16px;
  }

  .brand b {
    font-size: 15px;
  }

  .brand span {
    letter-spacing: 0.1em;
    font-size: 8px;
  }

  .mobileMenu summary {
    font-size: 10px;
  }

  .headerCta {
    width: 40px;
    height: 40px;
  }

  .headerCta span {
    font-size: 22px;
  }

  .heroInner {
    padding: 42px 16px 48px;
  }

  .hero h1 {
    font-size: 40px;
  }

  .heroLead {
    font-size: 14px;
  }

  .heroActions {
    gap: 12px;
  }

  .button {
    min-height: 54px;
    padding-inline: 16px;
    font-size: 13px;
  }

  .heroProof {
    font-size: 11px;
  }

  .heroProof strong {
    font-size: 14px;
  }

  .ticker > * {
    padding-inline: 20px;
  }

  .manifesto,
  .sectionDark {
    padding: 68px 16px;
  }

  .manifesto h2 {
    font-size: 38px;
  }

  .sectionHeading h2 {
    font-size: 44px;
  }

  .directionCard {
    min-height: 215px;
    padding: 24px;
  }

  .directionCard h3 {
    margin-top: 48px;
    font-size: 34px;
  }

  .ctaBand {
    padding: 60px 16px;
  }

  .ctaBand h2 {
    font-size: 32px;
  }

  .pageHero {
    min-height: auto;
    padding: 64px 16px 80px;
  }

  .pageHero h1,
  .aboutCopy h1,
  .briefHero h1 {
    font-size: 44px;
  }

  .serviceList {
    padding-inline: 16px;
  }

  .serviceRow {
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 16px;
    padding: 44px 0;
  }

  .serviceRow h2 {
    font-size: 32px;
  }

  .processBlock {
    padding: 68px 16px;
  }

  .processBlock h2 {
    font-size: 40px;
  }

  .casesList {
    padding: 0 16px 68px;
  }

  .caseCard {
    padding: 50px 0;
  }

  .caseMeta {
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 10px;
  }

  .caseMeta strong {
    grid-column: 2;
    font-size: 25px;
  }

  .caseBody h2 {
    font-size: 32px;
  }

  .caseBody blockquote {
    padding-left: 18px;
    font-size: 18px;
  }

  .honesty,
  .partnerNote {
    margin-right: 16px;
    margin-left: 16px;
    padding: 24px;
  }

  .aboutCopy {
    padding: 64px 16px;
  }

  .aboutPhoto {
    height: 480px;
  }

  .stats > div {
    min-height: 132px;
    padding: 20px 16px;
  }

  .stats strong {
    font-size: 48px;
  }

  .beliefs,
  .teamModel {
    padding: 68px 16px;
  }

  .beliefs h2 {
    font-size: 38px;
  }

  .beliefGrid article {
    min-height: auto;
    padding: 24px;
  }

  .teamModel h2 {
    font-size: 37px;
  }

  .briefHero {
    padding: 64px 16px 76px;
  }

  .briefHero > div {
    margin-bottom: 48px;
  }

  .briefForm {
    padding: 20px;
  }

  .directContacts {
    gap: 16px;
  }

  .footer {
    padding: 64px 16px 26px;
  }

  .footerTop h2 {
    font-size: 36px;
  }

  .footerBottom > div {
    flex-wrap: wrap;
    column-gap: 20px;
    row-gap: 14px;
  }
}
