/* BHQ's palette and typography live in theme.json. Component variables are
   sanitized in inc/design.php and editable in the Site Editor's BHQ controls. */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }
.wp-site-blocks { padding-block: 0; }
.wp-site-blocks > * { margin-block-start: 0; }
img { max-width: 100%; height: auto; }
input, select, textarea, button { font: inherit; }
a, button, input, select, textarea { -webkit-tap-highlight-color: transparent; }
:where(a, button, input, textarea, select, [tabindex]):focus-visible {
  outline: 3px solid var(--bhq-focus-color, var(--wp--preset--color--blue));
  outline-offset: 4px;
}
:where(.wp-block-button__link, .wp-element-button) { min-height: var(--bhq-button-height, 48px); transition: background-color .18s, box-shadow .18s; }
.wp-block-button__link:hover { box-shadow: 0 8px 20px #192d4410; }
.bhq-header {
  padding-block: 1rem;
  background: var(--wp--preset--color--warm);
  border-bottom: 1px solid var(--wp--preset--color--line);
}
.bhq-header-row { min-height: 50px; gap: 1.5rem; }
.bhq-brand { width: 194px; flex-shrink: 0; margin: 0; }
.bhq-brand img { display: block; width: 100%; }
.bhq-header a { text-decoration: none; }
.bhq-header .wp-block-navigation { gap: 1.75rem; }
.bhq-header .wp-block-navigation-item__content { padding-block: .5rem; }
.bhq-main {
  min-height: 60vh;
  padding-block: clamp(1.75rem, 3vw, 3rem);
  background: radial-gradient(ellipse at 95% 0, #00b6d309, transparent 32%), var(--wp--preset--color--warm);
}
.bhq-intro { margin-bottom: 2rem; }
.bhq-eyebrow { font-size: .6875rem; font-weight: 800; letter-spacing: .14em; line-height: 1.6; text-transform: uppercase; }
.bhq-intro h1 { margin-block: .75rem 1rem; }
.bhq-lead { font-size: var(--wp--preset--font-size--large); max-width: 680px; margin-left: 0 !important; }
.bhq-steps {
  display: flex;
  gap: .5rem;
  list-style: none;
  counter-reset: bhq-step;
  padding: .625rem;
  margin: 1.5rem 0 0;
  font-size: .8125rem;
  color: var(--wp--preset--color--muted);
  background: var(--wp--preset--color--white);
  border: 1px solid var(--wp--preset--color--line);
  border-radius: var(--bhq-card-radius, 16px);
}
.bhq-steps li { counter-increment: bhq-step; display: flex; align-items: center; gap: .5rem; padding: .5rem .875rem; border-radius: var(--bhq-button-radius, 12px); }
.bhq-steps li::before {
  content: counter(bhq-step, decimal-leading-zero);
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-size: .6875rem;
  font-weight: 700;
  background: var(--wp--preset--color--white);
}
.bhq-steps .is-current { color: var(--wp--preset--color--navy); background: var(--wp--preset--color--sand); font-weight: 700; }
.bhq-steps .is-current::before { background: var(--wp--preset--color--orange); border-color: transparent; color: var(--wp--preset--color--navy); }
.bhq-steps .is-complete::before { content: ''; background: var(--bhq-icon-color, #4366b0); mask: url('../icons/check.svg') center / 18px no-repeat; border: 0; }
.is-style-bhq-card, .bhq-empty-state {
  padding: clamp(1.5rem, 3vw, 2.5rem);
  border: 1px solid var(--wp--preset--color--line);
  border-radius: var(--bhq-card-radius, var(--wp--custom--radius--card));
  background: var(--wp--preset--color--white);
  box-shadow: var(--wp--preset--shadow--card);
}
.is-style-bhq-dark-card {
  padding: clamp(1.5rem, 3vw, 2.5rem);
  border-radius: var(--wp--custom--radius--large);
  color: var(--wp--preset--color--white);
  background: var(--wp--preset--color--navy);
}
.is-style-bhq-dark-card :where(h1, h2, h3, a) { color: inherit; }
.bhq-support {
  margin-top: 3rem;
  padding: 1.5rem 0 0;
  border-top: 1px solid var(--wp--preset--color--line);
  gap: 1.5rem;
}
.bhq-support p { margin-block: .4rem; font-size: .875rem; }
.bhq-support h3 { margin-block: .5rem; }
.bhq-support .bhq-eyebrow { font-size: .625rem; }
.bhq-empty-state { padding-block: clamp(3rem, 6vw, 5rem); text-align: center; }
.bhq-empty-state .wp-block-buttons { justify-content: center; }
.bhq-next-steps { margin-top: 2.5rem; }
.bhq-next-steps h2 { font-size: 1.5rem; }
.bhq-footer { background: var(--wp--preset--color--navy); color: var(--wp--preset--color--white); padding-block: 4.875rem 1.5rem; }
.bhq-footer > .alignwide { max-width: 1280px; }
.bhq-footer .bhq-footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.2fr; align-items: start; gap: 3.75rem; }
.bhq-footer-grid > * { min-width: 0; margin-block: 0; }
.bhq-footer-logo { width: 210px; max-width: 100%; margin: 0; }
.bhq-footer-logo img { display: block; width: 100%; }
.bhq-footer-brand p { max-width: 250px; margin-block: 1.5rem 0; }
.bhq-footer :where(p, .wp-block-navigation) { font-size: .8125rem; line-height: 1.6; }
.bhq-footer :where(.bhq-footer-brand p, .bhq-footer-contact p) { color: #a9b7c5; }
.bhq-footer .bhq-footer-heading { margin-block: 0 1.125rem; color: #a9b7c5; font-size: .75rem; line-height: 1.6; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; }
.bhq-footer .wp-block-navigation { color: #d5dde5; margin-block: 0; gap: .625rem; }
.bhq-footer .wp-block-navigation__container { align-items: flex-start; gap: .625rem; }
.bhq-footer-contact p { margin-block: 0 .75rem; overflow-wrap: anywhere; }
.bhq-footer .bhq-footer-cta { color: var(--wp--preset--color--orange); font-family: var(--wp--preset--font-family--heading); font-weight: 700; }
.bhq-footer a { color: inherit; text-decoration: none; }
.bhq-footer a:hover { color: var(--wp--preset--color--orange); text-decoration: underline; }
.bhq-footer :focus-visible { outline-color: var(--wp--preset--color--orange); }
.bhq-footer .bhq-footer-bottom { border-top: 1px solid #ffffff1a; padding-top: 1.375rem; margin-top: 3.4375rem; gap: 1rem; color: #a9b7c5; }
.bhq-footer-bottom :where(p, a) { margin-block: 0; font-size: .6875rem; }
.bhq-policy-page { --wp--style--global--wide-size: 780px; }
.bhq-policy-page .wp-block-post-content { background: var(--wp--preset--color--white); padding: clamp(1.25rem, 4vw, 3rem); border: 1px solid var(--wp--preset--color--line); border-radius: 18px; }

/* Preserve WooCommerce's responsive columns, loading states and form semantics.
   Component-specific cosmetics are isolated below for WooCommerce update QA. */
:where(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) {
  padding: clamp(1rem, 3vw, 2rem);
  border: 1px solid var(--wp--preset--color--line);
  border-radius: var(--bhq-card-radius, 16px);
  background: var(--wp--preset--color--white);
  box-shadow: var(--wp--preset--shadow--card);
  margin-bottom: 0;
}
.wp-block-woocommerce-empty-cart-block .bhq-empty-state { border: 0; box-shadow: none; }
:where(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) :where(input, select, textarea) {
  accent-color: var(--wp--preset--color--blue);
}
:where(.wp-block-woocommerce-order-confirmation-totals-wrapper, .wp-block-woocommerce-order-confirmation-downloads-wrapper, .wp-block-woocommerce-order-confirmation-billing-wrapper, .wp-block-woocommerce-order-confirmation-shipping-wrapper, .wp-block-woocommerce-order-confirmation-additional-fields-wrapper) {
  padding: clamp(1.25rem, 3vw, 2rem);
  background: var(--wp--preset--color--white);
  border: 1px solid var(--wp--preset--color--line);
  border-radius: var(--bhq-card-radius, var(--wp--custom--radius--card));
}
.bhq-order-page h2 { font-size: 1.5rem; }

/* The My Account area and order-pay view are server-rendered by WooCommerce.
   These stable classic selectors style them without replacing its PHP forms. */
.woocommerce { color: var(--wp--preset--color--ink); }
.woocommerce :where(h2, h3) { font-size: 1.5rem; }
.woocommerce a { color: var(--wp--preset--color--blue); }
.woocommerce :where(a.button, button.button, input.button, #respond input#submit) {
  display: inline-block;
  min-height: 48px;
  padding: .875rem 1.5rem;
  border: 1px solid transparent;
  border-radius: var(--wp--custom--radius--button);
  background: var(--wp--preset--color--orange);
  color: var(--wp--preset--color--navy);
  font-weight: 700;
  font-size: .9375rem;
  line-height: 1.5;
  text-decoration: none;
  cursor: pointer;
}
.woocommerce :where(a.button, button.button, input.button):hover { background: var(--wp--preset--color--sand); color: var(--wp--preset--color--navy); }
.woocommerce :where(button.button.alt, a.button.alt, input.button.alt) { background: var(--wp--preset--color--orange); color: var(--wp--preset--color--navy); }
.woocommerce form.login, .woocommerce form.register, .woocommerce form.lost_reset_password, .woocommerce .woocommerce-MyAccount-content, .woocommerce #order_review {
  margin-top: 0;
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid var(--wp--preset--color--line);
  border-radius: var(--bhq-card-radius, var(--wp--custom--radius--card));
  background: var(--wp--preset--color--white);
}
.woocommerce form.lost_reset_password { max-width: 640px; margin-inline: auto; }
.woocommerce form .form-row { padding: 0; margin-bottom: 1.25rem; }
.woocommerce form .form-row label { color: var(--wp--preset--color--navy); font-size: .875rem; font-weight: 600; margin-bottom: .375rem; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select, .woocommerce-EditAccountForm input.input-text {
  min-height: 48px;
  width: 100%;
  padding: .75rem;
  color: var(--wp--preset--color--ink);
  background: var(--wp--preset--color--white);
  border: 1px solid var(--wp--preset--color--line);
  border-radius: 10px;
}
.woocommerce :where(input[type="checkbox"], input[type="radio"]) { accent-color: var(--wp--preset--color--blue); }
.woocommerce form fieldset { padding: 1.25rem; margin-block: 1.5rem; border: 1px solid var(--wp--preset--color--line); border-radius: 12px; }
.woocommerce form legend { padding-inline: .5rem; font-weight: 700; }
.bhq-account-page .woocommerce-MyAccount-navigation { width: 23%; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: .75rem; border: 1px solid var(--wp--preset--color--line); border-radius: 18px; background: var(--wp--preset--color--white); }
.bhq-account-page .woocommerce-MyAccount-navigation li { margin: .25rem 0; padding: 0; border: 0; }
.woocommerce-MyAccount-navigation a { display: block; padding: .85rem 1rem; border-radius: 10px; text-decoration: none; font-size: .875rem; font-weight: 600; }
.woocommerce-MyAccount-navigation li.is-active a { background: var(--wp--preset--color--navy); color: var(--wp--preset--color--white); }
.woocommerce-MyAccount-navigation a:hover { background: var(--wp--preset--color--sand); color: var(--wp--preset--color--navy); }
.bhq-account-page .woocommerce-MyAccount-content { width: 73%; min-height: 310px; overflow-wrap: anywhere; }
.woocommerce table.shop_table { border: 1px solid var(--wp--preset--color--line); border-radius: 12px; border-spacing: 0; overflow: hidden; }
.woocommerce table.shop_table th { background: var(--wp--preset--color--surface); font-size: .8125rem; }
.woocommerce table.shop_table :where(th, td) { padding: 1rem; }
.woocommerce table.shop_table td { font-size: .875rem; }
.woocommerce table.shop_table .button { padding: .5rem .875rem; min-height: 40px; font-size: .8125rem; color: var(--wp--preset--color--navy); }
.woocommerce :where(.woocommerce-error, .woocommerce-info, .woocommerce-message) { border-radius: 12px; background: var(--wp--preset--color--white); font-size: .9375rem; }
.woocommerce .woocommerce-info { border-top-color: var(--wp--preset--color--blue); }
.woocommerce .woocommerce-message { border-top-color: var(--wp--preset--color--success); }
.woocommerce-Address address { padding: 1rem; background: var(--wp--preset--color--surface); border-radius: 10px; font-style: normal; }
.woocommerce .woocommerce-customer-details address { border-color: var(--wp--preset--color--line); padding: 1.25rem; border-radius: 12px; }
.woocommerce #payment { background: var(--wp--preset--color--surface); border-radius: 14px; }

@media (max-width: 1000px) {
  .bhq-footer .bhq-footer-grid { grid-template-columns: 1.5fr 1fr 1fr; gap: 2.375rem; }
  .bhq-footer-contact { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
  .bhq-footer .bhq-footer-grid { grid-template-columns: 1fr 1fr; }
  .bhq-footer-brand { grid-column: 1 / -1; }
  .bhq-footer-logo { width: 190px; }
  .bhq-footer .bhq-footer-bottom { flex-direction: column; align-items: flex-start; gap: .4375rem; }
}
@media (max-width: 780px) {
  .bhq-header-row { gap: 1rem; }
  .bhq-brand { width: 166px; }
  .bhq-header .wp-block-navigation { font-size: .8125rem; }
  .bhq-intro { margin-bottom: 1.75rem; }
  .bhq-steps { gap: .25rem; font-size: .75rem; flex-wrap: wrap; }
  .bhq-steps li { gap: .375rem; padding: .375rem .5rem; }
  .bhq-support { margin-top: 2rem; }
  .bhq-footer { padding-block: 2.5rem 1.5rem; }
  .bhq-account-page .woocommerce-MyAccount-navigation, .bhq-account-page .woocommerce-MyAccount-content { float: none; width: 100%; }
  .woocommerce-MyAccount-navigation { margin-bottom: 1.5rem; }
  .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: .25rem; padding: .5rem; }
  .woocommerce-MyAccount-navigation a { padding: .625rem .75rem; font-size: .8125rem; }
  .woocommerce-MyAccount-navigation li { margin: 0; }
  .woocommerce table.shop_table :where(th, td) { padding: .75rem; }
}
@media (max-width: 420px) {
  .bhq-header-row { gap: .75rem; }
  .bhq-header .wp-block-navigation { gap: .875rem; }
  .bhq-header .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open { background: var(--wp--preset--color--warm); }
  .bhq-steps { gap: .125rem; padding: .375rem; font-size: .6875rem; }
  .bhq-steps li { gap: .25rem; padding: .375rem; }
  .bhq-steps li::before { width: 20px; height: 20px; font-size: .625rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
