/* Botões */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-family:var(--font-ui);
  font-weight:var(--w-bold);
  font-size:var(--t-body);
  letter-spacing:var(--tr-caps);
  text-transform:uppercase;
  padding:var(--s-2) var(--s-4);
  border-radius:var(--r-btn);
  border:var(--bw) solid transparent;
  cursor:pointer;
  text-decoration:none;
  transition:opacity var(--dur) var(--ease),background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease);
  user-select:none;
}
.btn:hover{opacity:0.85}
.btn:disabled{opacity:0.5;cursor:not-allowed}

.btn-primary{
  background:var(--crimson);
  color:var(--linen);
  border-color:var(--crimson);
}
.btn-primary:hover{opacity:0.88}

.btn-outline{
  background:transparent;
  color:var(--linen);
  border-color:var(--linen);
}
.btn-outline:hover{
  background:var(--linen);
  color:var(--obsidian);
  opacity:1;
}

.btn-outline-dark{
  background:transparent;
  color:var(--iron);
  border-color:var(--iron);
}
.btn-outline-dark:hover{
  background:var(--iron);
  color:var(--linen);
  opacity:1;
}

/* Inputs */
.field{
  display:flex;
  flex-direction:column;
  gap:var(--s-1);
  margin-bottom:var(--s-3);
}
.field>label,
.field>.label{
  font-family:var(--font-ui);
  font-weight:var(--w-medium);
  font-size:var(--t-label);
  letter-spacing:var(--tr-label);
  color:var(--graphite);
  text-transform:uppercase;
}
.field input[type="text"],
.field input[type="tel"],
.field input[type="number"],
.field input[type="email"],
.field textarea{
  background:var(--linen);
  color:var(--iron);
  border:var(--bw) solid var(--graphite);
  border-radius:var(--r-btn);
  padding:14px var(--s-2);
  font-family:var(--font-ui);
  font-size:var(--t-body);
  transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);
  width:100%;
  appearance:none;
}
.field input::placeholder,
.field textarea::placeholder{color:var(--graphite);opacity:0.7}
.field input:focus,
.field textarea:focus{
  border-color:var(--crimson);
  outline:none;
  box-shadow:0 0 0 2px rgba(122,22,18,0.12);
}
.field input[aria-invalid="true"],
.field textarea[aria-invalid="true"]{
  border-color:var(--crimson);
}
.field .err{
  color:var(--crimson);
  font-size:var(--t-cap);
  letter-spacing:var(--tr-cap);
  margin-top:var(--s-1);
  display:none;
}
.field[data-invalid="true"] .err{display:block}

/* Radios + checkboxes */
.options{
  display:flex;
  flex-direction:column;
  gap:var(--s-2);
}
.opt{
  display:flex;
  align-items:flex-start;
  gap:var(--s-2);
  cursor:pointer;
  padding:var(--s-1) 0;
  font-family:var(--font-ui);
  font-size:var(--t-body);
  color:var(--iron);
  line-height:var(--lh-body);
}
.opt input[type="radio"],
.opt input[type="checkbox"]{
  appearance:none;
  -webkit-appearance:none;
  width:18px;
  height:18px;
  margin:0;
  flex-shrink:0;
  border:var(--bw) solid var(--graphite);
  background:var(--linen);
  cursor:pointer;
  position:relative;
  transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease);
  margin-top:3px;
}
.opt input[type="radio"]{border-radius:50%}
.opt input[type="checkbox"]{border-radius:2px}
.opt input:checked{
  background:var(--crimson);
  border-color:var(--crimson);
}
.opt input[type="radio"]:checked::after{
  content:"";
  position:absolute;
  inset:4px;
  border-radius:50%;
  background:var(--linen);
}
.opt input[type="checkbox"]:checked::after{
  content:"";
  position:absolute;
  inset:0;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' fill='none' stroke='%23F5F5F2' stroke-width='2.4' stroke-linecap='square'><polyline points='3.5 9.5 7.5 13 14.5 5.5'/></svg>");
  background-size:14px 14px;
  background-position:center;
  background-repeat:no-repeat;
}
.opt input:focus-visible{
  outline:2px solid var(--crimson);
  outline-offset:2px;
}

/* Monograma SVG container */
.monograma{display:inline-flex;align-items:center;justify-content:center}
.monograma svg{width:100%;height:auto}
