/**
 * FULLWIDTH CLIENT THEME - Base
 * Reset y estilos base de tipografia/documento. No colocar componentes aqui.
 */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; max-width: 100%; overflow-x: hidden; }

body {
  font-family: var(--fw-font-family);
  font-size: var(--fw-fs-base);
  font-weight: var(--fw-fw-regular);
  line-height: var(--fw-lh-normal);
  color: var(--fw-text-primary);
  background: var(--fw-surface-alt);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  max-width: 100%;
  overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: var(--fw-fw-semibold);
  line-height: var(--fw-lh-tight);
  color: var(--fw-text-primary);
  margin: 0 0 var(--fw-space-3) 0;
}

h1 { font-size: var(--fw-fs-3xl); }
h2 { font-size: var(--fw-fs-2xl); }
h3 { font-size: var(--fw-fs-xl); }
h4 { font-size: var(--fw-fs-lg); }
h5 { font-size: var(--fw-fs-md); }
h6 { font-size: var(--fw-fs-sm); text-transform: uppercase; letter-spacing: 0.04em; }

p { margin: 0 0 var(--fw-space-4) 0; color: var(--fw-text-secondary); }

a {
  color: var(--fw-text-link);
  text-decoration: none;
  transition: color var(--fw-duration-fast) var(--fw-ease);
}
a:hover { color: var(--fw-primary-hover); }

small, .fw-text-sm { font-size: var(--fw-fs-sm); }
.fw-text-xs { font-size: var(--fw-fs-xs); }
.fw-text-muted { color: var(--fw-text-muted) !important; }
.fw-text-secondary { color: var(--fw-text-secondary) !important; }

hr { border: none; border-top: 1px solid var(--fw-border); margin: var(--fw-space-6) 0; }

::selection { background: var(--fw-primary-100); color: var(--fw-dark); }

/* Scrollbar discreto */
* { scrollbar-width: thin; scrollbar-color: var(--fw-border-strong) transparent; }
*::-webkit-scrollbar { width: 8px; height: 8px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb { background: var(--fw-border-strong); border-radius: var(--fw-radius-full); }
*::-webkit-scrollbar-thumb:hover { background: var(--fw-dark-300); }

/* Focus visible accesible */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
  outline: none;
  box-shadow: var(--fw-shadow-focus);
  border-radius: var(--fw-radius-sm);
}

img, svg { max-width: 100%; display: block; }

.fw-container {
  max-width: var(--fw-container-max);
  margin: 0 auto;
  padding: 0 var(--fw-content-padding);
}

/* Utilities minimas de layout usadas transversalmente */
.fw-flex { display: flex; }
.fw-flex-col { display: flex; flex-direction: column; }
.fw-items-center { align-items: center; }
.fw-justify-between { justify-content: space-between; }
.fw-gap-1 { gap: var(--fw-space-1); }
.fw-gap-2 { gap: var(--fw-space-2); }
.fw-gap-3 { gap: var(--fw-space-3); }
.fw-gap-4 { gap: var(--fw-space-4); }
.fw-gap-6 { gap: var(--fw-space-6); }

.fw-hidden { display: none !important; }

@media (max-width: 991px) {
  .fw-hide-mobile { display: none !important; }
}
@media (min-width: 992px) {
  .fw-show-mobile { display: none !important; }
}
