/* Global type, layout, dividers, links, controls and forms. */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: 320px;
  background: var(--bbx-page);
  color: var(--bbx-text);
  font: 400 1rem/1.65 var(--bbx-font-body);
  -webkit-font-smoothing: antialiased;
}
::selection { background: var(--bbx-accent); color: var(--bbx-p-dark-text); }
img, svg, video { max-width: 100%; }
img { height: auto; }
svg { fill: none; stroke: currentColor; }
button, input, select, textarea { font: inherit; }
button, select { cursor: pointer; }
button:disabled, input:disabled, select:disabled, textarea:disabled { cursor: not-allowed; opacity: 0.65; }

.bbx-container { width: min(100% - 2 * var(--bbx-page-gutter), var(--bbx-width)); margin-inline: auto; }
.bbx-reading { max-width: var(--bbx-reading-width); }
.bbx-site-main { width: min(100% - 2 * var(--bbx-page-gutter), var(--bbx-width)); min-height: 44vh; margin: var(--bbx-space-6) auto; }
.bbx-site-main article { max-width: var(--bbx-reading-width); margin-bottom: var(--bbx-space-6); }
.bbx-site-main article + article { border-top: 1px solid var(--bbx-accent); padding-top: var(--bbx-space-5); }

h1, h2, h3, h4, h5, h6 {
  margin: 0 0 0.65em;
  color: var(--bbx-text);
  font-family: var(--bbx-font-display);
  font-weight: 400;
  line-height: 1.17;
  text-wrap: balance;
}
h1 { font-size: clamp(2.5rem, 5vw, 5.25rem); letter-spacing: -0.035em; }
h2 { font-size: clamp(2rem, 3.5vw, 3.5rem); letter-spacing: -0.025em; }
h3 { font-size: clamp(1.5rem, 2.5vw, 2.25rem); }
h4 { font-size: 1.375rem; }
h5, h6 { font: 600 0.95rem/1.4 var(--bbx-font-body); letter-spacing: 0.08em; text-transform: uppercase; }
p { margin: 0 0 1.25em; }
small, .bbx-eyebrow { font-size: 0.78rem; font-weight: 650; letter-spacing: 0.14em; text-transform: uppercase; }
blockquote { margin: var(--bbx-space-5) 0; padding-left: var(--bbx-space-4); border-left: 2px solid var(--bbx-accent); font-family: var(--bbx-font-display); font-size: 1.3rem; }

a { color: inherit; text-decoration: underline; text-underline-offset: 0.23em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline: 3px solid var(--bbx-focus);
  outline-offset: 3px;
}

.bbx-divider { display: flex; align-items: center; gap: var(--bbx-space-3); margin: var(--bbx-space-5) 0; color: var(--bbx-accent); }
.bbx-divider::before, .bbx-divider::after { content: ""; display: block; height: 1px; background: currentColor; }
.bbx-divider::before { width: min(10vw, 5rem); }
.bbx-divider::after { width: 0.4rem; height: 0.4rem; transform: rotate(45deg); border: 1px solid currentColor; background: transparent; }

.bbx-button, button:not(.bbx-icon-button):not(.bbx-menu-toggle), input[type="submit"], .wp-element-button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.9rem;
  padding: 0.7rem 1.3rem;
  border: 1px solid var(--bbx-button-border);
  border-radius: 0;
  background: var(--bbx-accent);
  color: var(--bbx-button-text);
  font: 650 0.76rem/1.3 var(--bbx-font-body);
  letter-spacing: 0.12em;
  text-decoration: none;
  text-transform: uppercase;
  transition: background-color 150ms ease, color 150ms ease, border-color 150ms ease;
}
.bbx-button:hover, button:not(.bbx-icon-button):not(.bbx-menu-toggle):hover, input[type="submit"]:hover, .wp-element-button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover {
  background: var(--bbx-surface);
  color: var(--bbx-text);
  border-color: var(--bbx-border);
}
.bbx-button--secondary { background: transparent; color: var(--bbx-text); border-color: var(--bbx-border); }
.bbx-button--secondary:hover { background: var(--bbx-surface); }

label { display: inline-block; font-weight: 600; }
input[type="text"], input[type="email"], input[type="search"], input[type="password"], input[type="tel"], input[type="url"], input[type="number"], input[type="date"], select, textarea,
.woocommerce input.input-text, .woocommerce textarea, .woocommerce select {
  width: 100%;
  min-height: 2.9rem;
  padding: 0.65rem 0.8rem;
  border: 1px solid var(--bbx-border);
  border-radius: 0;
  background: var(--bbx-control-bg);
  color: var(--bbx-text);
}
textarea { min-height: 8rem; resize: vertical; }
input::placeholder, textarea::placeholder { color: var(--bbx-muted); opacity: 1; }
fieldset { border: 1px solid var(--bbx-border); padding: var(--bbx-space-4); }
legend { padding: 0 var(--bbx-space-2); font-weight: 600; }
input[type="checkbox"], input[type="radio"] { accent-color: var(--bbx-text); width: 1.1rem; height: 1.1rem; }
form p { margin-bottom: var(--bbx-space-4); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}
