/* ============================================================
   BASE — Loja Paraíso
   Reset, tipografia, formulários, tabelas e elementos semânticos.
   Fornece a fundação que antes vinha do Storefront, agora que o tema
   é standalone. Enfileirado ANTES do main.css (baixa especificidade —
   o design próprio sempre sobrescreve). Valores de espaçamento espelham
   o Storefront para preservar paridade; cores usam tokens do Paraíso
   (com fallback, pois este arquivo carrega antes do :root do main.css).
   ============================================================ */

/* ---- reset essencial ---- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; word-wrap: break-word; overflow-wrap: break-word; }

/* ---- tipografia de bloco (margens herdadas do Storefront p/ paridade) ---- */
h1, h2, h3, h4, h5, h6 { clear: both; margin: 0 0 .54em; line-height: 1.22; }
p { margin: 0 0 1.4em; }
ul, ol { margin: 0 0 1.4em 3em; padding: 0; }
ul { list-style: disc; }
ol { list-style: decimal; }
li > ul, li > ol { margin-bottom: 0; }
dd { margin: 0 0 1.6em; }
hr { background-color: #ccc; border: 0; height: 1px; margin: 0 0 1.4em; }
blockquote { margin: 0 0 1.4em; padding: 0 1em; border-left: 3px solid rgba(0,0,0,.08); font-style: italic; }
pre { background: rgba(0,0,0,.06); font-family: Monaco, Consolas, monospace; margin: 0 0 1.6em; padding: 1.4em; overflow: auto; max-width: 100%; }
code, kbd, tt, var { font-family: Monaco, Consolas, monospace; background: rgba(0,0,0,.05); padding: .2em .5em; border-radius: 3px; }
abbr[title] { border-bottom: 1px dotted #666; cursor: help; text-decoration: none; }
mark, ins { text-decoration: none; background: transparent; font-weight: 600; }
small { font-size: 80%; }
b, strong { font-weight: 700; }
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
sup { top: -.5em; }
sub { bottom: -.25em; }
figure { margin: 0; }
embed, iframe, object, video { max-width: 100%; }

/* ---- formulários: reset ---- */
button, input, select, optgroup, textarea { font: inherit; color: inherit; margin: 0; }
button, [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; cursor: pointer; }
button::-moz-focus-inner, [type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border: 0; padding: 0; }
[type="checkbox"], [type="radio"] { box-sizing: border-box; padding: 0; }
fieldset { border: 1px solid var(--creme-borda, #efe9e1); margin: 0; padding: .35em .75em .75em; }
legend { padding: 0; }
label { font-weight: 400; }

/* ---- formulários: estilo base Paraíso (campos não cobertos por componente) ---- */
input[type="text"], input[type="number"], input[type="email"], input[type="tel"],
input[type="url"], input[type="password"], input[type="search"], input[type="date"],
textarea, select, .input-text {
  background: var(--branco, #fff);
  color: var(--texto, #333);
  border: 1.5px solid var(--creme-borda, #efe9e1);
  border-radius: 8px;
  padding: 11px 14px;
}
input[type="text"], input[type="number"], input[type="email"], input[type="tel"],
input[type="url"], input[type="password"], input[type="search"], input[type="date"],
textarea, .input-text { -webkit-appearance: none; appearance: none; }
textarea { width: 100%; overflow: auto; vertical-align: top; }
input::placeholder, textarea::placeholder { color: var(--texto-mudo, #a99c8c); }

/* ---- foco acessível ---- */
input:focus, textarea:focus, select:focus { outline: none; border-color: var(--dourado, #C9A84C); }
a:focus-visible, button:focus-visible { outline: 2px solid var(--dourado, #C9A84C); outline-offset: 2px; }

/* ---- tabelas ---- */
table { width: 100%; border-collapse: collapse; margin: 0 0 1.4em; }
table caption { padding: 1em 0; font-weight: 600; text-align: left; }
th, td { padding: .9em 1.2em; text-align: left; vertical-align: top; }
thead th { vertical-align: middle; }
