/* Navalha: ajustes de celular (carregado depois de main.css). */
@media (max-width: 640px) {
  body { font-size: 15px; line-height: 1.6; }

  /* logo rola com a página e não cobre mais o conteúdo */
  #header { position: absolute; }
  .title-nav-wrapper { padding: 16px 0 0; }
  .site-title a, .site-title svg { width: 64px; height: 64px; }

  /* faixas de título */
  .title-desc-wrapper { min-height: 42vh; padding: 96px 20px 48px; }
  .title-desc-wrapper.first { height: 100svh; min-height: 560px; padding: 110px 0 0; }
  .page-title { font-size: 54px; line-height: 56px; letter-spacing: 7px; }
  .page-title.long { font-size: 42px; line-height: 46px; letter-spacing: 5px; }
  .page-title p { margin: 0; }
  .page-desc { margin-top: 12px; padding: 10px 0; }
  .page-desc p { font-size: 14px; line-height: 22px; letter-spacing: .5px; }
  .scroll-arrow { height: 48px; bottom: 16px; }

  /* conteúdo com margem de verdade */
  .content-inner { padding: 40px 20px 48px; }
  .layout, .row { margin: 0; }
  .blk, .layout > .blk:first-child { padding-left: 0; padding-right: 0; }
  .blk { padding-top: 12px; padding-bottom: 12px; }
  .blk--spacer { height: 16px; }
  .rte h1 { font-size: 32px; line-height: 36px; }
  .rte h2 { font-size: 28px; line-height: 32px; margin-bottom: 10px; }
  .rte p + h2, .rte h3 + h2, .rte .spaced { margin-top: 26px; }
  .rte h3 { font-size: 13px; line-height: 20px; }
  .rte p { font-size: 15px; line-height: 1.6; margin: 8px 0; }

  /* botões grandes e fáceis de tocar */
  .btn-wrap { display: block; }
  .btn--medium { display: block; font-size: 24px; line-height: 28px; padding: 16px 20px; }
  .btn--small { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; font-size: 19px; padding: 10px 20px; }
  .pill { width: 100%; height: 48px; font-size: 18px; }

  /* home: contatos só com o essencial */
  #inicio .col.span-5 { display: none; }

  /* barbeiros em grade de duas colunas, sem o texto longo */
  #barbeiros .row { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 14px; }
  #barbeiros .col { display: flex; flex-direction: column; }
  #barbeiros .blk { padding: 0; }
  #barbeiros .blk--img { order: 1; }
  #barbeiros .blk:not(.blk--img):not(.blk--btn) { order: 2; padding-top: 12px; }
  #barbeiros .blk--btn { order: 3; padding-top: 10px; margin-top: auto; }
  #barbeiros .rte h2 { font-size: 22px; line-height: 24px; letter-spacing: .5px; margin-bottom: 4px; }
  #barbeiros .rte p { font-size: 13px; line-height: 1.45; margin: 0; }
  #barbeiros .rte p + p { display: none; }
  #barbeiros .btn--small { width: 100%; min-height: 42px; font-size: 16px; padding: 6px 10px; border-width: 1px; }

  /* galerias só de fotos: duas por linha */
  .row:has(> .col > .blk--img:only-child) { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .row:has(> .col > .blk--img:only-child) .blk { padding: 0; }

  /* imprensa e mapa */
  .press-big { font-size: 120px; height: 110px; }
  .logo-tile { width: 100%; height: 96px; margin: 0 0 12px; }
  .map { height: 260px; }

  /* rodapé */
  .footer-wrapper { padding: 56px 20px 40px; }
  #footer .row { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 18px; }
  #footer .col + .col { margin-top: 0; }
  #footer .col.span-4 { grid-column: 1 / -1; }
  #footer .rte h2 { font-size: 24px; line-height: 28px; }
  #footer .rte p { font-size: 14px; }
  #footer .rte p a { display: inline-block; padding: 6px 0; }
  .social { gap: 12px; }
  .social a, .social svg { width: 44px; height: 44px; }
  .back-to-top-link a { padding-top: 6px; }

  .back-to-top-link a { font-size: 13px; }
  .rte h3 a { display: inline-block; padding: 8px 0; }
}
