/* ==========================================================================
   responsive.css — breakpoints (desktop-first)
   Alvos: 1920 (desktop) · 1366 (notebook) · 1024 (tablet horizontal)
          768 (tablet) · 390 (mobile)
   ========================================================================== */

/* Desktop grande ≥ 1600px */
@media (min-width: 1600px) {
  :root { --container: 1360px; }
  .hero__media img { object-position: 100% 30%; }
}

/* Notebook ≤ 1366px */
@media (max-width: 1366px) {
  :root { --container: 1180px; }
  .nav-list { gap: 1.1rem; }
  .nav-link { font-size: .8125rem; }
  .brand__logo { height: 42px; }
  .main-nav { gap: 1.25rem; }
}

/* Notebook compacto ≤ 1240px — menu passa a ser off-canvas */
@media (max-width: 1240px) {
  .nav-list, .nav-cta .btn { display: none; }
  .menu-toggle { display: inline-flex; }
  .grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .spec-grid.grid--4, .team-grid.grid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .footer-top { grid-template-columns: 1fr 1fr; }
  .hero__inner { grid-template-columns: 1fr; }
  .hero-card { justify-self: start; }
}

/* Tablet horizontal ≤ 1024px */
@media (max-width: 1024px) {
  :root { --header-h: 76px; }
  .grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .spec-grid.grid--4, .team-grid.grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .about, .ba, .faq-layout, .contact, .leader { grid-template-columns: 1fr; }
  .about__media { max-width: 620px; }
  .leader__media { max-width: 520px; }
  .faq-aside, .sidebar { position: static; }
  .detail-layout, .article-layout { grid-template-columns: 1fr; }
  .gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 210px; }
  .carousel { --per-view: 2; }
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stat:nth-child(3)::before { display: none; }
  .stat:nth-child(n + 3) { border-top: 1px solid rgba(255,255,255,.1); }
  .post-card--featured { grid-template-columns: 1fr; }
  .post-card--featured .post-card__media { min-height: 0; aspect-ratio: 16 / 9; }
  .history { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 2.5rem; }
  .history::before { display: none; }
  .map { aspect-ratio: 16 / 9; }
  .scroll-cue { display: none; }
}

/* Feed do Instagram: 2 colunas até o tablet, 1 coluna em telas muito estreitas */
@media (max-width: 1024px) { .ig-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 359px) { .ig-grid { grid-template-columns: 1fr; } }

/* Tablet ≤ 768px */
@media (max-width: 768px) {
  body { font-size: .975rem; }
  .grid--2, .grid--3, .grid--4 { grid-template-columns: 1fr; }
  .spec-grid.grid--4, .team-grid.grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .feature-grid.grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero { padding-bottom: 4rem; align-items: flex-end; }
  .hero__media { inset: 0 0 auto 0; height: 66vh; height: 66svh; }
  .hero__overlay { background: linear-gradient(180deg, rgba(35, 27, 41, .5) 0, rgba(35, 27, 41, 0) 90px, rgba(35, 27, 41, 0) 34svh, rgba(35, 27, 41, .9) 54svh, #231B29 66svh); }
  .hero__media img { object-position: 50% 12%; }
  .hero { padding-top: calc(var(--header-h) + 40svh); }
  .hero-card { flex-wrap: wrap; }
  .brand__logo { height: 44px; }
  .hero__actions .btn { flex: 1 1 220px; }
  .timeline::before { left: 32px; }
  .timeline__item { grid-template-columns: 64px 1fr; gap: 1.25rem; align-items: start; }
  .timeline__marker { grid-column: 1; }
  .timeline__card, .timeline__item:nth-child(even) .timeline__card { grid-column: 2; text-align: left; }
  .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 190px; }
  .gallery__item--wide { grid-column: span 2; }
  .gallery__item--tall { grid-row: span 1; }
  .form-grid, .benefit-grid, .check-list--2 { grid-template-columns: 1fr; }
  .footer-top { grid-template-columns: 1fr 1fr; }
  .footer-top > :first-child { grid-column: 1 / -1; }
  .footer-bottom { flex-direction: column; }
  .section-head--split { align-items: flex-start; }
  .lightbox__prev, .lightbox__next { top: auto; bottom: 1.5rem; transform: none; }
  .lightbox__prev { left: calc(50% - 64px); }
  .lightbox__next { right: calc(50% - 64px); }
  .lightbox { padding-bottom: 6rem; }
  .author-box { flex-direction: column; text-align: center; }
  .about__badge { left: 0; }
  /* Em telas de toque, bio da equipe sempre visível abaixo da foto */
  @media (hover: none) {
    .team-card__bio { position: static; transform: none; background: none; color: var(--text-muted); padding: .75rem .5rem 0; }
    .team-card__social { opacity: 1; transform: none; }
  }
}

/* Mobile ≤ 560px */
@media (max-width: 560px) {
  .highlight-card__badge { left: .75rem; bottom: .75rem; padding: .3rem .7rem; font-size: .75rem; }
  .feature-grid.grid--3, .spec-grid.grid--4, .team-grid.grid--4 { grid-template-columns: 1fr; }
  .carousel { --per-view: 1; --gap: 1rem; }
  .carousel__controls { flex-direction: column-reverse; align-items: center; }
  .stats { grid-template-columns: 1fr 1fr; }
  .stat { padding: 1.5rem .75rem; }
  .hero-card { width: 100%; }
  .team-card__media { aspect-ratio: 1 / 1; }
  .team-card__media img { object-position: top; }
  .leader__media::after { inset: 1rem -.6rem -1rem .6rem; }
  .about__media { padding: 0 .75rem .75rem 0; }
  .about__media::before { inset: .75rem 0 0 .75rem; }
}

/* Mobile ≤ 390px */
@media (max-width: 390px) {
  :root { --gutter: 1rem; }
  .brand__logo { height: 40px; }
  .site-header.is-scrolled .brand__logo { height: 38px; }
  .btn { padding-inline: 1.25rem; }
  .hero__actions .btn { flex-basis: 100%; }
  .gallery { grid-template-columns: 1fr; grid-auto-rows: 220px; }
  .gallery__item--wide { grid-column: span 1; }
  .footer-top { grid-template-columns: 1fr; }
  .accordion__trigger { padding: 1.1rem 1.1rem; font-size: 1rem; }
  .accordion__panel p { padding: 0 1.1rem 1.2rem; }
  .history { grid-template-columns: 1fr; }
  .steps li { padding-left: 4rem; }
}

/* Impressão */
@media print {
  .site-header, .float-actions, .cookie-banner, .mobile-nav, .nav-overlay, .cta-banner, .map { display: none !important; }
  .page-hero, .hero { background: none !important; color: #000; padding: 1rem 0; min-height: 0; }
  .page-hero h1, .hero h1 { color: #000; }
  .page-hero__media, .hero__media, .hero__overlay, .page-hero::before { display: none; }
}

/* Tratamentos em destaque */
@media (max-width: 1024px) {
  .highlight-grid { grid-template-columns: 1fr; }
}
