/* estilos.css — BEM + variáveis + responsivo + acessibilidade */
/* ===================================================== */
/* Variáveis */
:root{
  --cor-primaria: #548235;
  --cor-escura: #242729;
  --cor-acento: #FF6B00;
  --cor-fundo: #ffffff;
  --cor-texto: #1d2125;
  --cor-muted: #f3f5f7;
  --radius: 14px;
  --shadow: 0 6px 24px rgba(0,0,0,.08);
  --space-1: .5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2rem;
  --max-w: 1200px;
  --font-base: 16px;
}
html{ font-size: var(--font-base); }
html.tema-escuro{ --cor-fundo:#0e0f10; --cor-texto:#e9edf1; --cor-muted:#13161a; }
html.alto-contraste{ --cor-fundo:#000; --cor-texto:#fff; --cor-muted:#000; --cor-primaria:#fff; --cor-escura:#000; --cor-acento:#fff; }
/* Reset básico */
*{ box-sizing: border-box; }
body{ margin:0; font-family: Aptos, 'Century Gothic','Segoe UI', Roboto, system-ui, -apple-system, Arial, sans-serif; background:var(--cor-fundo); color:var(--cor-texto); line-height:1.6; }
img{ max-width:100%; height:auto; display:block; }
a{ color: var(--cor-primaria); text-decoration: none; }
a:hover{ text-decoration: underline; }
.container{ max-width: var(--max-w); padding: 0 var(--space-2); margin: 0 auto; }
.narrow{ max-width: 760px; }
.section{ padding: var(--space-4) 0; }
.section--muted{ background: var(--cor-muted); }
.section__title{ margin:0 0 var(--space-2); font-size:1.75rem; }
.skip-link{ position:absolute; left:-999px; top:auto; width:1px; height:1px; overflow:hidden; }
.skip-link:focus{ left: var(--space-2); top: var(--space-2); width:auto; height:auto; background:#ff0; color:#000; padding:var(--space-1); }

/* Header */
.header{ border-bottom:1px solid #e4e7eb; background:#fff; position:sticky; top:0; z-index:10; }
.header__wrap{ display:flex; align-items:center; justify-content:space-between; gap: var(--space-2); min-height:64px; }
.nav__list{ display:flex; gap: var(--space-2); list-style:none; margin:0; padding:0; }
.nav__link{ padding:.5rem .75rem; border-radius:10px; }
.nav__link:focus, .nav__link:hover{ outline:2px solid var(--cor-primaria); outline-offset:2px; text-decoration:none; }

/* Buttons */
.btn{ display:inline-block; padding:.75rem 1rem; border-radius: var(--radius); border:2px solid transparent; box-shadow: var(--shadow); transition: transform .2s; }
.btn:focus{ outline:2px solid var(--cor-primaria); outline-offset:2px; }
.btn:active{ transform: scale(.98); }
.btn--primary{ background: var(--cor-primaria); color:#fff; }
.btn--secondary{ background: #e9edf1; color:#111; }
.btn--outline{ background: transparent; color: var(--cor-primaria); border-color: var(--cor-primaria); box-shadow:none; }

/* Hero */
.hero__grid{ display:grid; grid-template-columns: 1.1fr .9fr; gap: var(--space-4); align-items:center; }
.hero__title{ font-size:2.25rem; margin:0 0 .5rem; }
.hero__subtitle{ margin:0 0 var(--space-2); font-size:1.25rem; color:#4b5563; }
.hero__actions{ display:flex; gap: var(--space-2); margin-bottom: var(--space-2); }
.hero__slogan{ color:#6b7280; }

/* Logos */
.logos{ display:grid; grid-template-columns: repeat(4,1fr); gap: var(--space-2); align-items:center; list-style:none; padding:0; margin:0; }
.logo-svg rect{ fill:#d1d5db; }

/* Cards (serviços) */
.cards{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns: repeat(3,1fr); gap: var(--space-2); }
.card{ background:#fff; border-radius: var(--radius); padding: var(--space-3); box-shadow: var(--shadow); }
.card__title{ margin-top:0; font-size:1.25rem; }
.card__desc{ color:#4b5563; }
.card__list{ padding-left:1.2rem; }

.produtos{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns: repeat(4,1fr); gap: var(--space-2); }
.produtos--lista{ grid-template-columns: repeat(2,1fr); }
.produtos__item{ display:flex; align-items:center; gap:.75rem; background:#fff; padding: var(--space-2); border-radius: var(--radius); box-shadow: var(--shadow); }
.produtos__icon svg{ width:24px; height:24px; fill: var(--cor-primaria); }

/* Portfolio */
.portfolio{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns: repeat(3,1fr); gap: var(--space-2); }
.portfolio__link{ display:block; background:#fff; border-radius: var(--radius); overflow:hidden; box-shadow: var(--shadow); padding-bottom:.5rem; }
.portfolio__link img{ width:100%; height:auto; aspect-ratio: 16/10; object-fit:cover; }

.posts{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns: repeat(3,1fr); gap: var(--space-2); }
.post-card{ background:#fff; padding: var(--space-2); border-radius: var(--radius); box-shadow: var(--shadow); }

/* Footer */
.footer{ background: var(--cor-escura); color:#e6eaef; }
.footer a{ color:#e6eaef; }
.footer__grid{ display:grid; grid-template-columns: repeat(4,1fr); gap: var(--space-3); padding: var(--space-4) 0; }
.footer__title{ margin-top:0; }
.footer__list{ list-style:none; padding:0; margin:0; }
.footer__bottom{ border-top:1px solid #3a3e42; text-align:center; padding: var(--space-2); font-size:.875rem; }
.footer__social{ display:flex; gap: .75rem; list-style:none; padding:0; margin-top: var(--space-2); }

/* Form */
.form__fieldset{ border:1px solid #e5e7eb; padding: var(--space-3); border-radius: var(--radius); }
.form__label{ display:block; margin-top: var(--space-2); }
.form__input{ width:100%; padding:.75rem 1rem; border:1px solid #cbd5e1; border-radius:12px; background:#fff; }
.form__input:focus{ outline:2px solid var(--cor-primaria); outline-offset:2px; }
.form__checkbox{ display:flex; gap:.5rem; align-items:center; margin-top: var(--space-2); }
.form__help{ font-size:.875rem; color:#6b7280; }

/* CTA */
.cta__box{ background:linear-gradient(135deg, var(--cor-primaria), var(--cor-acento)); color:#fff; padding: var(--space-4); border-radius: var(--radius); text-align:center; }
.cta__actions{ display:flex; gap: var(--space-2); justify-content:center; flex-wrap:wrap; }

/* Team */
.team{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns: repeat(3,1fr); gap: var(--space-2); }
.team__card{ background:#fff; border-radius: var(--radius); padding: var(--space-2); text-align:center; box-shadow: var(--shadow); }
.team__card img{ border-radius: 50%; aspect-ratio:1; object-fit:cover; margin: 0 auto var(--space-1); }

/* Post */
.post__header h1{ margin-bottom: .25rem; }
.notice{ background:#fff3cd; color:#8a6d3b; padding:.75rem 1rem; border-radius:12px; }

/* Acessibilidade - foco visível */
:focus-visible{ outline: 2px dashed var(--cor-acento); outline-offset: 2px; }

/* Responsividade */
@media (max-width: 1280px){ }
@media (max-width: 1024px){
  .hero__grid{ grid-template-columns:1fr; }
  .cards{ grid-template-columns: repeat(2,1fr); }
  .portfolio{ grid-template-columns: repeat(2,1fr); }
  .posts{ grid-template-columns: repeat(2,1fr); }
  .footer__grid{ grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 768px){
  .cards{ grid-template-columns:1fr; }
  .produtos{ grid-template-columns: repeat(2,1fr); }
  .portfolio{ grid-template-columns:1fr; }
  .posts{ grid-template-columns:1fr; }
  .team{ grid-template-columns:1fr; }
}
@media (max-width: 480px){
  .hero__title{ font-size:1.75rem; }
}

/* Animações respeitando preferências */
@media (prefers-reduced-motion: reduce){
  *{ animation: none !important; transition: none !important; }
}
