/* Huntdad / Flatsome product typography. No cart or WCPA processing changes. */

/* 2.7.1 — Use the full available product width without a fixed pixel cap. */
body.single-product .product-container,
body.single-product .product-main {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box;
}
body.single-product .product-main {
  padding-inline: clamp(12px, 2vw, 32px) !important;
  margin-inline: 0 !important;
}
body.single-product .product-main > .row {
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
}
body.single-product .product-main .product-info > .col-inner,
body.single-product .product-info form.cart,
body.single-product .product-info .single_variation_wrap,
body.single-product .product-info .woocommerce-variation-add-to-cart,
body.single-product .product-info .wcpa_form_outer,
body.single-product .product-info .wcpa_form,
body.single-product .product-info .wcpa_wrap,
body.single-product .product-info .wcpa_section,
body.single-product .product-info .wcpa_row {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box;
}
body.single-product .product-info .wcpa_row > .wcpa_column:only-child {
  width: 100% !important;
  max-width: none !important;
  flex: 1 1 100% !important;
}
body.single-product .product-info .wcpa_type_radio-group {
  width: 100% !important;
  max-width: none !important;
}
body.single-product .product-info .wcpa_type_radio-group :is(.wcpa_group_field, .wcpa_grp_items) {
  display: flex !important;
  flex-wrap: nowrap !important;
  width: 100% !important;
  max-width: none !important;
  gap: clamp(6px, .8vw, 12px) !important;
  box-sizing: border-box;
  overflow-x: auto;
  padding-block: 4px;
}
body.single-product .product-info .wcpa_type_radio-group .wcpa_radio {
  flex: 1 0 auto !important;
  min-width: 0 !important;
  margin: 0 !important;
}
body.single-product .product-info .wcpa_type_radio-group .wcpa_radio label {
  display: flex !important;
  width: 100% !important;
  min-width: 48px !important;
  padding-inline: clamp(10px, 1vw, 20px) !important;
  margin: 0 !important;
  white-space: nowrap;
}
/* Preserve image/information columns; only their contents expand. */
body.single-product .huntdad-companion-bundle,
body.single-product .huntdad-companion-bundle .huntdad-bundle-items-list,
body.single-product .huntdad-companion-bundle .huntdad-companion-row {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box;
}
body.single-product .huntdad-companion-bundle .huntdad-row-content {
  flex: 1 1 0% !important;
  min-width: 0 !important;
  max-width: none !important;
}
body.single-product .huntdad-companion-bundle .huntdad-row-controls {
  width: 100% !important;
  max-width: none !important;
  display: flex !important;
  flex-flow: row nowrap !important;
  align-items: center !important;
  gap: clamp(8px, 1vw, 18px) !important;
}
body.single-product .huntdad-companion-bundle .huntdad-item-options {
  display: flex !important;
  flex: 1 1 0% !important;
  min-width: 160px !important;
  max-width: none !important;
}
body.single-product .huntdad-companion-bundle .huntdad-select-wrapper {
  flex: 1 1 0% !important;
  width: auto !important;
  min-width: 76px !important;
  max-width: none !important;
}
body.single-product .huntdad-companion-bundle .huntdad-custom-select {
  width: 100% !important;
  max-width: none !important;
}
body.single-product .huntdad-companion-bundle .huntdad-row-actions {
  flex: 0 0 auto !important;
  margin-left: auto !important;
}
@media (max-width: 549px) {
  /* Keep readable controls on phones; rows still consume all available width. */
  body.single-product .product-info .wcpa_type_radio-group :is(.wcpa_group_field, .wcpa_grp_items) {
    flex-wrap: wrap !important;
  }
  body.single-product .product-info .wcpa_type_radio-group .wcpa_radio {
    flex: 1 0 54px !important;
  }
}
body.single-product {
  --hd-brand: #2F3B2F;
  --hd-font: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --hd-control-height: 58px;
  --hd-quantity-width: 148px;
}
body.single-product .product-info {
  font-family: var(--hd-font);
  color: var(--hd-brand);
  font-size: 17px;
  font-weight: 500;
  line-height: 1.65;
}
body.single-product .product-info .product-title {
  font-family: var(--hd-font) !important;
  font-size: clamp(28px, 2.4vw, 38px) !important;
  font-weight: 800 !important;
  letter-spacing: .015em !important;
  line-height: 1.22 !important;
  color: var(--hd-brand) !important;
}
body.single-product .product-info .breadcrumbs {
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .02em;
}
body.single-product .product-info > .price-wrapper .price {
  font-size: clamp(26px, 2vw, 32px) !important;
  line-height: 1.3;
  color: var(--hd-brand) !important;
  font-weight: 800 !important;
}
body.single-product .product-info > .price-wrapper .price :is(ins, .amount, bdi, .woocommerce-Price-currencySymbol) {
  font-weight: inherit !important;
  color: inherit !important;
}
body.single-product .product-info > .price-wrapper .price del {
  font-size: .8em;
  font-weight: 600 !important;
  color: var(--hd-brand) !important;
  opacity: .65;
}
body.single-product .product-info > .price-wrapper .price ins { text-decoration: none; }
body.single-product .product-info .woocommerce-product-details__short-description {
  font-size: 17px;
  font-weight: 500;
}

/* WCPA options: accessible native radios, larger labels and pills. */
body.single-product .wcpa_wrap { font-family: var(--hd-font); color: var(--hd-brand); }
body.single-product .wcpa_wrap :is(.wcpa_field_label, .wcpa_label, .wcpa_field > label) {
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.4;
  color: var(--hd-brand) !important;
}
body.single-product .wcpa_wrap :is(.wcpa_group_field, .wcpa_grp_items) { gap: 10px !important; }
body.single-product .wcpa_wrap .wcpa_type_radio-group input[type='radio'] {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
body.single-product .wcpa_wrap :is(.wcpa_type_radio-group, .wcpa_check_ui_button) .wcpa_radio label {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 48px;
  min-width: 52px;
  padding: 10px 22px !important;
  margin: 0 !important;
  border: 2px solid var(--hd-brand) !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: var(--hd-brand) !important;
  font-family: var(--hd-font) !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  letter-spacing: .015em !important;
  cursor: pointer;
  box-shadow: none;
  transition: background-color .15s ease, color .15s ease;
}
body.single-product .wcpa_wrap .wcpa_radio label :is(span, b, strong) { font-weight: inherit; }
body.single-product .wcpa_wrap .wcpa_type_radio-group .wcpa_radio.wcpa_selected label,
body.single-product .wcpa_wrap .wcpa_type_radio-group input[type='radio']:checked ~ label {
  background: var(--hd-brand) !important;
  color: #fff !important;
}
body.single-product .wcpa_wrap .wcpa_type_radio-group .wcpa_radio:has(input:checked) label {
  background: var(--hd-brand) !important;
  color: #fff !important;
}
body.single-product .wcpa_wrap .wcpa_type_radio-group .wcpa_radio label::before,
body.single-product .wcpa_wrap .wcpa_type_radio-group .wcpa_radio label::after { content: none !important; }
body.single-product .wcpa_wrap .wcpa_type_radio-group .wcpa_radio:focus-within label {
  outline: 3px solid rgba(47,59,47,.35) !important;
  outline-offset: 3px;
}
body.single-product .wcpa_wrap .wcpa_type_radio-group .wcpa_radio:has(input:disabled) label {
  opacity: .45;
  cursor: not-allowed;
}

/* Purchase controls: wider Add to cart, taller +/- and quantity input.
   Keep form structure intact, including WCPA and variation wrappers. */
body.single-product .product-info form.cart .quantity {
  display: inline-flex !important;
  align-items: stretch !important;
  float: none !important;
  width: var(--hd-quantity-width) !important;
  height: var(--hd-control-height) !important;
  margin: 0 12px 12px 0 !important;
  vertical-align: middle !important;
}
body.single-product .product-info form.cart .quantity :is(.minus, .plus, .qty) {
  box-sizing: border-box;
  height: var(--hd-control-height) !important;
  min-height: var(--hd-control-height) !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1.5px solid var(--hd-brand) !important;
  background: #fff !important;
  color: var(--hd-brand) !important;
  font-family: var(--hd-font) !important;
  font-weight: 700 !important;
  font-size: 22px !important;
  line-height: normal !important;
  text-align: center;
  box-shadow: none !important;
}
body.single-product .product-info form.cart .quantity :is(.minus, .plus) {
  flex: 0 0 44px;
  width: 44px !important;
  cursor: pointer;
}
body.single-product .product-info form.cart .quantity .qty { flex: 1 1 auto; width: 60px !important; border-inline: 0 !important; }
body.single-product .product-info form.cart .quantity .minus { border-radius: 8px 0 0 8px !important; }
body.single-product .product-info form.cart .quantity .plus { border-radius: 0 8px 8px 0 !important; }
body.single-product .product-info form.cart .single_add_to_cart_button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box;
  vertical-align: middle !important;
  float: none !important;
  width: calc(100% - var(--hd-quantity-width) - 20px) !important;
  min-width: 0 !important;
  min-height: var(--hd-control-height) !important;
  margin: 0 0 12px !important;
  padding: 12px 24px !important;
  border: 2px solid var(--hd-brand) !important;
  border-radius: 8px !important;
  background: var(--hd-brand) !important;
  color: #fff !important;
  font-family: var(--hd-font) !important;
  font-size: 21px !important;
  font-weight: 800 !important;
  letter-spacing: .045em !important;
  line-height: 1.35 !important;
  white-space: normal;
  text-transform: uppercase;
}
body.single-product .product-info form.cart .single_add_to_cart_button span { font-size: inherit !important; font-weight: inherit !important; color: inherit !important; }
body.single-product .product-info form.cart :is(.single_add_to_cart_button, .quantity .plus, .quantity .minus):focus-visible {
  outline: 3px solid rgba(47,59,47,.4) !important;
  outline-offset: 3px;
}
body.single-product .product-info form.cart:not(:has(.quantity)) .single_add_to_cart_button { width: 100% !important; }
body.single-product .product-info form.cart .single_add_to_cart_button:is(:disabled, .disabled) { opacity: .55 !important; cursor: not-allowed; }

/* Bundle stays on one line and matches the larger product typography. */
body.single-product .huntdad-companion-bundle { font-family: var(--hd-font) !important; }
body.single-product .huntdad-companion-bundle :is(.huntdad-row-title, .huntdad-title-link) {
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: .01em !important;
}
body.single-product .huntdad-companion-bundle .huntdad-bundle-title { font-size: 20px !important; font-weight: 800 !important; }
body.single-product .huntdad-companion-bundle .huntdad-custom-select {
  min-height: 48px !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  padding: 9px 28px 9px 14px !important;
  border-width: 2px !important;
  letter-spacing: .01em !important;
}
body.single-product .huntdad-companion-bundle .huntdad-row-pricing { font-size: 22px !important; font-weight: 800 !important; }
body.single-product .huntdad-companion-bundle .huntdad-row-pricing :is(ins, .amount, bdi, .woocommerce-Price-currencySymbol) { font-size: inherit !important; font-weight: inherit !important; }
body.single-product .huntdad-companion-bundle .huntdad-row-pricing del { font-size: 17px !important; font-weight: 600 !important; }
body.single-product .huntdad-companion-bundle .huntdad-ios-switch { width: 50px !important; height: 28px !important; }
body.single-product .huntdad-companion-bundle .huntdad-ios-slider::before { width: 24px !important; height: 24px !important; left: 2px !important; bottom: 2px !important; }
body.single-product .huntdad-companion-bundle .huntdad-ios-switch input:checked + .huntdad-ios-slider::before { transform: translateX(22px) !important; }
body.single-product .huntdad-companion-bundle .huntdad-ios-switch input:focus-visible + .huntdad-ios-slider { outline: 3px solid rgba(47,59,47,.4); outline-offset: 3px; }
@media (max-width: 549px) {
  body.single-product { --hd-control-height: 54px; --hd-quantity-width: 128px; }
  body.single-product .product-info form.cart .quantity :is(.plus, .minus) { flex-basis: 40px; width: 40px !important; }
  body.single-product .product-info form.cart .quantity .qty { width: 48px !important; }
  body.single-product .product-info form.cart .single_add_to_cart_button { font-size: 18px !important; padding: 10px 12px !important; letter-spacing: .025em !important; }
  body.single-product .wcpa_wrap :is(.wcpa_type_radio-group, .wcpa_check_ui_button) .wcpa_radio label { font-size: 16px !important; padding: 9px 17px !important; }
  body.single-product .huntdad-companion-bundle :is(.huntdad-row-title, .huntdad-title-link) { font-size: 17px !important; }
  body.single-product .huntdad-companion-bundle .huntdad-row-pricing { font-size: 20px !important; }
}
@media (prefers-reduced-motion: reduce) {
  body.single-product .wcpa_wrap .wcpa_radio label,
  body.single-product .huntdad-companion-bundle .huntdad-ios-slider,
  body.single-product .huntdad-companion-bundle .huntdad-ios-slider::before { transition: none !important; }
}

/* 2.7.2 — No gray hover/click halo. Keep normal borders and keyboard focus. */
:where(a, button, .button, input, select, textarea, [role="button"]):hover:not(:focus-visible),
:where(button, .button, input, select, textarea, [role="button"]):focus:not(:focus-visible) {
  outline: none !important;
  box-shadow: none !important;
}
body.single-product .wcpa_wrap .wcpa_type_radio-group .wcpa_radio:focus-within label,
body.single-product .wcpa_wrap .wcpa_type_radio-group .wcpa_radio:hover label,
body.single-product .wcpa_wrap .wcpa_type_radio-group .wcpa_radio label:hover,
body.single-product .wcpa_wrap .wcpa_type_radio-group .wcpa_radio.wcpa_selected label {
  outline: none !important;
  box-shadow: none !important;
}
body.single-product .huntdad-companion-bundle .huntdad-custom-select:focus:not(:focus-visible),
body.single-product .huntdad-companion-bundle .huntdad-custom-select:hover,
body.single-product .huntdad-companion-bundle .huntdad-ios-switch:hover .huntdad-ios-slider,
body.single-product .huntdad-companion-bundle .huntdad-ios-switch input:focus:not(:focus-visible) + .huntdad-ios-slider {
  outline: none !important;
  box-shadow: none !important;
}
/* A keyboard user still needs a visible focus target; this is not a hover halo. */
body.single-product .wcpa_wrap .wcpa_type_radio-group .wcpa_radio:has(input:focus-visible) label {
  outline: 2px solid #2F3B2F !important;
  outline-offset: 3px;
  box-shadow: none !important;
}
body.single-product .huntdad-companion-bundle .huntdad-custom-select:focus-visible {
  outline: 2px solid #2F3B2F !important;
  outline-offset: 3px;
  box-shadow: none !important;
}

/* 2.7.3 — Quantity and Add to cart share a single grid row.
   Other direct form children (WCPA, bundle, variation fields) remain full width. */
body.single-product .product-info :is(form.cart, .woocommerce-variation-add-to-cart, .variations_button):has(> .quantity):has(> .single_add_to_cart_button) {
  display: grid !important;
  grid-template-columns: var(--hd-quantity-width, 148px) minmax(0, 1fr) !important;
  align-items: center !important;
  column-gap: 12px !important;
  row-gap: 12px !important;
  width: 100% !important;
}
body.single-product .product-info :is(form.cart, .woocommerce-variation-add-to-cart, .variations_button):has(> .quantity):has(> .single_add_to_cart_button) > * {
  grid-column: 1 / -1;
  min-width: 0;
}
body.single-product .product-info :is(form.cart, .woocommerce-variation-add-to-cart, .variations_button):has(> .quantity):has(> .single_add_to_cart_button) > .quantity {
  grid-column: 1 !important;
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
  align-self: center !important;
}
body.single-product .product-info :is(form.cart, .woocommerce-variation-add-to-cart, .variations_button):has(> .quantity):has(> .single_add_to_cart_button) > .single_add_to_cart_button {
  grid-column: 2 !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  float: none !important;
  align-self: center !important;
}
body.single-product .product-info :is(form.cart, .woocommerce-variation-add-to-cart, .variations_button):has(> .quantity):has(> .single_add_to_cart_button)::before,
body.single-product .product-info :is(form.cart, .woocommerce-variation-add-to-cart, .variations_button):has(> .quantity):has(> .single_add_to_cart_button)::after,
body.single-product .product-info :is(form.cart, .woocommerce-variation-add-to-cart, .variations_button):has(> .quantity):has(> .single_add_to_cart_button) > br {
  display: none !important;
  content: none !important;
}
@media (max-width: 549px) {
  body.single-product .product-info :is(form.cart, .woocommerce-variation-add-to-cart, .variations_button):has(> .quantity):has(> .single_add_to_cart_button) {
    column-gap: 8px !important;
  }
}
