/**
 * Bushsports Sporty theme — layout system + active health, movement and outdoor fun.
 * Loads after Elementor. Fixes spacing rhythm and max-width across all pages.
 */
@import url("https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800&family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&display=swap");

/* ── Design tokens ───────────────────────────────────────── */
:root {
  --sp-font-display: "Barlow Condensed", "Arial Narrow", sans-serif;
  --sp-font-body: "DM Sans", system-ui, sans-serif;
  /* Sporty palette — energy, health, sky & turf */
  --sp-slate: #0c2340;
  --sp-slate-mid: #143352;
  --sp-forest: #00a878;
  --sp-forest-deep: #008f66;
  --sp-sky: #00b4d8;
  --sp-sunset: #ff6b35;
  --sp-sunset-bright: #ff8f5c;
  --sp-sand: #e8f7f0;
  --sp-sand-dark: #d4ebe3;
  --sp-cream: #f4fbf8;
  --sp-text: #0c2340;
  --sp-muted: #5a7184;
  --sp-border: rgba(12, 35, 64, 0.1);
  --sp-radius: 14px;
  --sp-radius-lg: 22px;
  --sp-shadow: 0 14px 40px rgba(0, 168, 120, 0.12);
  --sp-shadow-sm: 0 4px 18px rgba(12, 35, 64, 0.08);
  /* Shop product card */
  --sp-card-hero-min-h: clamp(240px, 38vw, 320px);
  --sp-card-stars-line-h: 1.35em;
  /* Layout rhythm — fixes inconsistent Elementor spacing */
  --sp-content-max: 1180px;
  --sp-product-desc-max: 900px; /* ~⅓ wider than previous ~65ch text column */
  --sp-section-y: clamp(2.5rem, 5vw, 4.5rem);
  --sp-section-x: clamp(1.25rem, 4vw, 2rem);
  --sp-block-gap: clamp(1.25rem, 3vw, 2rem);
  --sp-header-h: 76px;
}

/* ── Base ────────────────────────────────────────────────── */
html {
  scroll-behavior: smooth;
}

body.bs-sporty-site {
  font-family: var(--sp-font-body) !important;
  font-size: 1.0625rem;
  color: var(--sp-text) !important;
  background: var(--sp-cream) !important;
  background-image:
    radial-gradient(ellipse 90% 60% at 100% 0%, rgba(0, 180, 216, 0.14), transparent 55%),
    radial-gradient(ellipse 70% 50% at 0% 100%, rgba(0, 168, 120, 0.12), transparent 50%),
    linear-gradient(180deg, #ffffff 0%, var(--sp-cream) 45%, var(--sp-sand) 100%) !important;
  line-height: 1.65 !important;
  -webkit-font-smoothing: antialiased;
}

/* ── Layout system (structure fixes) ─────────────────────── */
body.bs-sporty-site #content.site-main {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

/* Hide duplicate theme page title — Elementor blocks carry headings */
body.bs-sporty-site .page-header {
  display: none !important;
}

/* All main content sections: consistent width + vertical rhythm */
body.bs-sporty-site main#content .elementor[data-elementor-type="wp-page"] {
  width: 100%;
}

body.bs-sporty-site main .e-con.e-parent:not(.elementor-location-header *):not(.elementor-location-footer *) {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body.bs-sporty-site main .e-con.e-parent > .e-con-inner {
  width: 100% !important;
  max-width: var(--sp-content-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: var(--sp-section-y) var(--sp-section-x) !important;
  gap: var(--sp-block-gap) !important;
  box-sizing: border-box;
}

/* Remove empty section gaps */
body.bs-sporty-site main .e-con-inner:empty {
  display: none !important;
  padding: 0 !important;
  min-height: 0 !important;
}

body.bs-sporty-site main .e-con.e-parent:has(> .e-con-inner:empty) {
  display: none !important;
}

/* Two-column image + text rows — even split, aligned center */
body.bs-sporty-site main .e-con.e-parent > .e-con-inner {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: center !important;
}

body.bs-sporty-site main .e-con.e-parent > .e-con-inner > .e-con.e-child {
  flex: 1 1 min(100%, 340px) !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: var(--sp-block-gap) !important;
}

/* Widget spacing inside columns */
body.bs-sporty-site main .elementor-widget {
  margin-bottom: 0 !important;
}

body.bs-sporty-site main .elementor-widget:not(:last-child) {
  margin-bottom: var(--sp-block-gap) !important;
}

body.bs-sporty-site main p {
  margin-top: 0;
  margin-bottom: 1em;
  max-width: 65ch;
}

body.bs-sporty-site main ul,
body.bs-sporty-site main ol {
  margin: 0 0 1.25em;
  padding-left: 1.35em;
  max-width: 65ch;
}

/* Elementor pages only — not WooCommerce product descriptions */
body.bs-sporty-site.single-product main#content .elementor p,
body.bs-sporty-site.single-product main#content .elementor ul,
body.bs-sporty-site.single-product main#content .elementor ol {
  max-width: 65ch;
}

/* Alternating section backgrounds — fresh outdoor rhythm */
body.bs-sporty-site main .elementor[data-elementor-type="wp-page"] > .e-con.e-parent:nth-child(odd) {
  background: transparent;
}

body.bs-sporty-site main .elementor[data-elementor-type="wp-page"] > .e-con.e-parent:nth-child(even) {
  background: rgba(255, 255, 255, 0.85) !important;
  border-top: 1px solid var(--sp-border);
  border-bottom: 1px solid var(--sp-border);
  box-shadow: inset 0 1px 0 rgba(0, 168, 120, 0.06);
}

/* Full-bleed hero — sunrise energy band */
body.bs-sporty-site main .elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child {
  background: linear-gradient(
    125deg,
    var(--sp-sky) 0%,
    var(--sp-forest) 42%,
    var(--sp-forest-deep) 72%,
    var(--sp-slate) 100%
  ) !important;
  border: none !important;
  position: relative;
  overflow: hidden;
}

body.bs-sporty-site main .elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    url("data:image/svg+xml,%3Csvg width='120' height='24' viewBox='0 0 120 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 12h40l8-8 8 16 8-16 8 8h40' fill='none' stroke='%23ffffff' stroke-opacity='0.12' stroke-width='2'/%3E%3C/svg%3E")
      repeat,
    linear-gradient(105deg, transparent 40%, rgba(255, 255, 255, 0.08) 50%, transparent 60%);
  background-size: 240px 48px, 100% 100%;
  pointer-events: none;
  opacity: 0.9;
}

body.bs-sporty-site main .elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child > .e-con-inner {
  position: relative;
  z-index: 1;
}

body.bs-sporty-site main .elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child,
body.bs-sporty-site main .elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child h2,
body.bs-sporty-site main .elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child p,
body.bs-sporty-site main .elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child a {
  color: #fff !important;
}

body.bs-sporty-site main .elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child a:hover {
  color: #fff !important;
  text-shadow: 0 0 20px rgba(255, 200, 100, 0.6);
}

/* Images — energetic card frames */
body.bs-sporty-site main img {
  border-radius: var(--sp-radius-lg);
  box-shadow: var(--sp-shadow);
  border: 3px solid rgba(255, 255, 255, 0.9);
  width: 100%;
  height: auto;
  display: block;
}

body.bs-sporty-site main .e-image-link-base {
  display: block;
  border-radius: var(--sp-radius-lg);
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

body.bs-sporty-site main .e-image-link-base:hover {
  transform: scale(1.02);
  box-shadow: var(--sp-shadow);
}

/* ── Typography ──────────────────────────────────────────── */
body.bs-sporty-site .elementor-heading-title,
body.bs-sporty-site main h1,
body.bs-sporty-site main h2:not(.woocommerce-loop-product__title),
body.bs-sporty-site main h3,
body.bs-sporty-site .widget-title {
  font-family: var(--sp-font-display) !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  line-height: 1.08 !important;
  text-transform: uppercase;
  color: var(--sp-slate) !important;
}

body.bs-sporty-site main h2:not(.woocommerce-loop-product__title) {
  font-size: clamp(1.75rem, 4vw, 2.5rem) !important;
  margin-bottom: 0.75em !important;
}

body.bs-sporty-site main h3 {
  font-size: clamp(1.35rem, 3vw, 1.75rem) !important;
}

body.bs-sporty-site main h2:not(.woocommerce-loop-product__title) a,
body.bs-sporty-site main h3 a {
  color: inherit !important;
  text-decoration: none !important;
  border-bottom: 3px solid var(--sp-forest);
  transition: color 0.2s ease, border-color 0.2s ease;
}

body.bs-sporty-site main h2:not(.woocommerce-loop-product__title) a:hover,
body.bs-sporty-site main h3 a:hover {
  color: var(--sp-sky) !important;
  border-color: var(--sp-sunset);
}

/* ── Header ──────────────────────────────────────────────── */
body.bs-sporty-site .elementor-location-header {
  position: sticky !important;
  top: 0;
  z-index: 1000;
}

body.bs-sporty-site .elementor-location-header > .e-con.e-parent:first-child {
  background: rgba(255, 255, 255, 0.96) !important;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 4px solid var(--sp-forest) !important;
  box-shadow: 0 4px 24px rgba(0, 168, 120, 0.1) !important;
  min-height: var(--sp-header-h);
}

body.bs-sporty-site .elementor-location-header .elementor-shape-top {
  display: none !important;
}

body.bs-sporty-site .elementor-location-header img {
  max-height: 52px;
  filter: none;
}

body.bs-sporty-site .elementor-nav-menu .elementor-item,
body.bs-sporty-site .elementor-nav-menu .elementor-sub-item {
  font-family: var(--sp-font-display) !important;
  font-size: 0.92rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  color: var(--sp-slate) !important;
  text-decoration: none !important;
  padding: 0.35em 0.65em !important;
  transition: color 0.2s ease;
}

body.bs-sporty-site .elementor-nav-menu .elementor-item:hover,
body.bs-sporty-site .elementor-nav-menu .elementor-sub-item:hover {
  color: var(--sp-forest) !important;
}

body.bs-sporty-site .elementor-nav-menu--dropdown {
  background: #fff !important;
  border: 2px solid var(--sp-forest) !important;
  border-radius: var(--sp-radius) !important;
  padding: 0.5rem 0 !important;
  box-shadow: var(--sp-shadow) !important;
}

body.bs-sporty-site .elementor-menu-toggle {
  background: linear-gradient(135deg, var(--sp-forest) 0%, var(--sp-sky) 100%) !important;
  color: #fff !important;
  border-radius: 10px !important;
}

/* ── Buttons & CTAs ──────────────────────────────────────── */
body.bs-sporty-site .elementor-button,
body.bs-sporty-site .elementor-button-link,
body.bs-sporty-site .wp-element-button,
body.bs-sporty-site .wpcf7-submit,
body.bs-sporty-site button[type="submit"] {
  font-family: var(--sp-font-display) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  border-radius: 999px !important;
  padding: 0.85em 2em !important;
  background: linear-gradient(135deg, var(--sp-sunset) 0%, var(--sp-sunset-bright) 100%) !important;
  color: #fff !important;
  border: none !important;
  box-shadow: 0 4px 0 var(--sp-forest-deep), 0 8px 24px rgba(255, 107, 53, 0.35) !important;
  transition: transform 0.18s ease, box-shadow 0.18s ease !important;
  text-decoration: none !important;
}

body.bs-sporty-site .elementor-button:hover,
body.bs-sporty-site .wpcf7-submit:hover {
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 6px 0 var(--sp-forest-deep), 0 12px 28px rgba(255, 107, 53, 0.4) !important;
  color: #fff !important;
}

body.bs-sporty-site .elementor-widget-call-to-action .elementor-cta {
  border-radius: var(--sp-radius-lg) !important;
  overflow: hidden;
  border: 2px solid rgba(255, 255, 255, 0.15);
}

/* ── Footer (original layout, theme colours) ─────────────── */
html[data-bs-theme="sporty"] .elementor-location-footer,
body.bs-sporty-site .elementor-location-footer {
  background: linear-gradient(180deg, var(--sp-slate) 0%, #061528 100%) !important;
  color: rgba(255, 255, 255, 0.9) !important;
  margin-top: var(--sp-section-y);
  border-top: 5px solid var(--sp-forest);
}

html[data-bs-theme="sporty"] .elementor-location-footer .elementor-element-2123ca97,
html[data-bs-theme="sporty"] .elementor-location-footer .elementor-element-2123ca97:not(.elementor-motion-effects-element-type-background),
html[data-bs-theme="sporty"] .elementor-location-footer .elementor-element-2123ca97 > .elementor-motion-effects-container > .elementor-motion-effects-layer,
body.bs-sporty-site .elementor-location-footer .elementor-element-2123ca97,
body.bs-sporty-site .elementor-location-footer .elementor-element-2123ca97:not(.elementor-motion-effects-element-type-background),
body.bs-sporty-site .elementor-location-footer .elementor-element-2123ca97 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
  background-color: transparent !important;
  background-image: linear-gradient(180deg, var(--sp-slate) 0%, #061528 100%) !important;
}

html[data-bs-theme="sporty"] .elementor-location-footer .e-con-inner,
body.bs-sporty-site .elementor-location-footer .e-con-inner {
  max-width: var(--sp-content-max) !important;
  margin: 0 auto !important;
  padding: var(--sp-section-y) var(--sp-section-x) !important;
}

html[data-bs-theme="sporty"] .elementor-location-footer .elementor-widget-text-editor span[style],
html[data-bs-theme="sporty"] .elementor-location-footer .elementor-widget-text-editor [style*="color"],
body.bs-sporty-site .elementor-location-footer .elementor-widget-text-editor span[style],
body.bs-sporty-site .elementor-location-footer .elementor-widget-text-editor [style*="color"] {
  color: rgba(255, 255, 255, 0.9) !important;
}

html[data-bs-theme="sporty"] .elementor-location-footer .elementor-widget-text-editor span[style] b,
body.bs-sporty-site .elementor-location-footer .elementor-widget-text-editor span[style] b {
  color: var(--sp-sky) !important;
}

html[data-bs-theme="sporty"] .elementor-location-footer .elementor-widget-text-editor span[style] > strong:only-child,
body.bs-sporty-site .elementor-location-footer .elementor-widget-text-editor span[style] > strong:only-child {
  color: var(--sp-sky) !important;
}

html[data-bs-theme="sporty"] .elementor-location-footer .elementor-widget-text-editor span[style] strong,
body.bs-sporty-site .elementor-location-footer .elementor-widget-text-editor span[style] strong {
  color: rgba(255, 255, 255, 0.9) !important;
}

html[data-bs-theme="sporty"] .elementor-location-footer p,
html[data-bs-theme="sporty"] .elementor-location-footer span,
html[data-bs-theme="sporty"] .elementor-location-footer strong,
html[data-bs-theme="sporty"] .elementor-location-footer h3,
html[data-bs-theme="sporty"] .elementor-location-footer .elementor-heading-title,
body.bs-sporty-site .elementor-location-footer p,
body.bs-sporty-site .elementor-location-footer span,
body.bs-sporty-site .elementor-location-footer strong,
body.bs-sporty-site .elementor-location-footer h3,
body.bs-sporty-site .elementor-location-footer .elementor-heading-title {
  color: rgba(255, 255, 255, 0.9) !important;
}

html[data-bs-theme="sporty"] .elementor-location-footer .elementor-widget-text-editor b,
body.bs-sporty-site .elementor-location-footer .elementor-widget-text-editor b {
  color: var(--sp-sky) !important;
}

html[data-bs-theme="sporty"] .elementor-location-footer a,
body.bs-sporty-site .elementor-location-footer a {
  color: rgba(255, 255, 255, 0.9) !important;
}

html[data-bs-theme="sporty"] .elementor-location-footer a:hover,
body.bs-sporty-site .elementor-location-footer a:hover {
  color: var(--sp-sky) !important;
}

html[data-bs-theme="sporty"] .elementor-location-footer .elementor-element-5b8550ce .elementor-cta__content,
body.bs-sporty-site .elementor-location-footer .elementor-element-5b8550ce .elementor-cta__content {
  background-color: var(--sp-cream) !important;
}

html[data-bs-theme="sporty"] .elementor-location-footer .elementor-element-5b8550ce .elementor-cta__title,
body.bs-sporty-site .elementor-location-footer .elementor-element-5b8550ce .elementor-cta__title {
  color: var(--sp-muted) !important;
}

html[data-bs-theme="sporty"] .elementor-location-footer .elementor-element-5b8550ce .elementor-cta__description,
body.bs-sporty-site .elementor-location-footer .elementor-element-5b8550ce .elementor-cta__description {
  color: var(--sp-slate) !important;
}

html[data-bs-theme="sporty"] .elementor-location-footer .elementor-element-5b8550ce .elementor-cta__button,
body.bs-sporty-site .elementor-location-footer .elementor-element-5b8550ce .elementor-cta__button {
  color: #fff !important;
  background: linear-gradient(135deg, var(--sp-sunset) 0%, var(--sp-sunset-bright) 100%) !important;
  border-color: var(--sp-sunset) !important;
  border-radius: 999px !important;
}

html[data-bs-theme="sporty"] .elementor-location-footer .elementor-element-5b8550ce .elementor-cta__button:hover,
body.bs-sporty-site .elementor-location-footer .elementor-element-5b8550ce .elementor-cta__button:hover {
  color: #fff !important;
  background: linear-gradient(135deg, var(--sp-sunset-bright) 0%, var(--sp-sunset) 100%) !important;
  border-color: var(--sp-sunset-bright) !important;
}

html[data-bs-theme="sporty"] .elementor-location-footer .elementor-social-icon,
body.bs-sporty-site .elementor-location-footer .elementor-social-icon {
  color: #fff !important;
  fill: #fff !important;
}

html[data-bs-theme="sporty"] .elementor-location-footer .elementor-social-icon:hover,
body.bs-sporty-site .elementor-location-footer .elementor-social-icon:hover {
  color: var(--sp-sky) !important;
  fill: var(--sp-sky) !important;
}

/* ── Forms ───────────────────────────────────────────────── */
body.bs-sporty-site .bushsports-enquiry-form,
body.bs-sporty-site .wpcf7-form {
  max-width: 640px;
  margin: 0 auto;
  background: #fff;
  border-radius: var(--sp-radius-lg);
  padding: clamp(1.5rem, 4vw, 2.5rem);
  box-shadow: var(--sp-shadow);
  border: 1px solid var(--sp-border);
  border-top: 4px solid var(--sp-forest);
}

body.bs-sporty-site .bushsports-enquiry-form input,
body.bs-sporty-site .bushsports-enquiry-form textarea,
body.bs-sporty-site .wpcf7-form input,
body.bs-sporty-site .wpcf7-form textarea {
  font-family: var(--sp-font-body) !important;
  width: 100%;
  box-sizing: border-box;
  border: 2px solid var(--sp-sand-dark) !important;
  border-radius: 8px !important;
  padding: 0.8rem 1rem !important;
  background: var(--sp-cream) !important;
}

body.bs-sporty-site .bushsports-enquiry-form input:focus,
body.bs-sporty-site .bushsports-enquiry-form textarea:focus {
  border-color: var(--sp-forest) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(0, 168, 120, 0.25) !important;
}

/* ── WooCommerce shop / product archives ───────────────────── */
/* Also key off data-bs-theme so archive pages style correctly even before body classes settle */
html[data-bs-theme="sporty"] body.woocommerce #primary,
html[data-bs-theme="sporty"] body.woocommerce-page #primary,
html[data-bs-theme="sporty"] body.woocommerce .content-area,
html[data-bs-theme="sporty"] body.woocommerce-page .content-area,
body.bs-sporty-site.woocommerce #primary,
body.bs-sporty-site.woocommerce-page #primary,
body.bs-sporty-site.woocommerce .content-area,
body.bs-sporty-site.woocommerce-page .content-area {
  /* Sporty shop layout is intentionally wider */
  max-width: 1320px;
  margin: 0 auto;
  padding: var(--sp-section-y) var(--sp-section-x);
  box-sizing: border-box;
  width: 100%;
  float: none !important;
}

html[data-bs-theme="sporty"] body.woocommerce .site-main,
html[data-bs-theme="sporty"] body.woocommerce-page .site-main,
body.bs-sporty-site.woocommerce .site-main,
body.bs-sporty-site.woocommerce-page .site-main {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
}

/* Shop page: move sorting to top-left above list */
html[data-bs-theme="sporty"] body.woocommerce .site-main#main,
html[data-bs-theme="sporty"] body.woocommerce-page .site-main#main,
body.bs-sporty-site.woocommerce .site-main#main,
body.bs-sporty-site.woocommerce-page .site-main#main {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
}

body.bs-sporty-site .woocommerce-breadcrumb {
  margin-bottom: 1rem;
  font-size: 0.9rem;
  color: var(--sp-muted);
}

body.bs-sporty-site .woocommerce-result-count,
body.bs-sporty-site .woocommerce-ordering {
  margin-bottom: 1.25rem;
}

html[data-bs-theme="sporty"] body.woocommerce .woocommerce-ordering,
html[data-bs-theme="sporty"] body.woocommerce-page .woocommerce-ordering,
body.bs-sporty-site .woocommerce-ordering {
  float: none !important;
  order: 3 !important;
  align-self: flex-start !important;
  margin-top: 0.25rem;
}

html[data-bs-theme="sporty"] body.woocommerce .woocommerce-result-count,
html[data-bs-theme="sporty"] body.woocommerce-page .woocommerce-result-count,
body.bs-sporty-site .woocommerce-result-count {
  float: none !important;
  order: 2 !important;
}

html[data-bs-theme="sporty"] body.woocommerce ul.products,
html[data-bs-theme="sporty"] body.woocommerce-page ul.products,
body.bs-sporty-site .woocommerce ul.products {
  order: 4 !important;
}

html[data-bs-theme="sporty"] body.woocommerce .woocommerce-pagination,
html[data-bs-theme="sporty"] body.woocommerce-page .woocommerce-pagination,
body.bs-sporty-site.woocommerce .woocommerce-pagination,
body.bs-sporty-site.woocommerce-page .woocommerce-pagination {
  order: 5 !important;
  float: none !important;
  width: 100% !important;
  clear: both !important;
  align-self: center !important;
  margin-top: 2rem !important;
}

body.bs-sporty-site .woocommerce-ordering select {
  font-family: var(--sp-font-body);
  padding: 0.5rem 0.75rem;
  border-radius: 8px;
  border: 1px solid var(--sp-border);
}

/* Kill WooCommerce float columns — use a proper card grid */
html[data-bs-theme="sporty"] body.woocommerce ul.products,
html[data-bs-theme="sporty"] body.woocommerce-page ul.products,
html[data-bs-theme="sporty"] body.woocommerce ul.products.columns-1,
html[data-bs-theme="sporty"] body.woocommerce ul.products.columns-2,
html[data-bs-theme="sporty"] body.woocommerce ul.products.columns-3,
html[data-bs-theme="sporty"] body.woocommerce ul.products.columns-4,
html[data-bs-theme="sporty"] body.woocommerce ul.products.columns-5,
html[data-bs-theme="sporty"] body.woocommerce ul.products.columns-6,
body.bs-sporty-site.woocommerce ul.products,
body.bs-sporty-site.woocommerce-page ul.products,
body.bs-sporty-site .woocommerce ul.products,
body.bs-sporty-site .woocommerce ul.products.columns-1,
body.bs-sporty-site .woocommerce ul.products.columns-2,
body.bs-sporty-site .woocommerce ul.products.columns-3,
body.bs-sporty-site .woocommerce ul.products.columns-4,
body.bs-sporty-site .woocommerce ul.products.columns-5,
body.bs-sporty-site .woocommerce ul.products.columns-6 {
  display: grid !important;
  /* 4 cols desktop — use minmax(0, 1fr) to avoid implicit narrow columns */
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  grid-auto-flow: row !important;
  grid-auto-columns: minmax(0, 1fr) !important;
  gap: 1.75rem !important;
  padding: 0 !important;
  margin: 1.5rem auto 2.5rem !important;
  list-style: none !important;
  width: 100% !important;
  clear: both !important;
  justify-items: stretch !important;
  align-items: stretch !important;
  max-width: 1320px !important;
}

html[data-bs-theme="sporty"] .woocommerce ul.products::before,
html[data-bs-theme="sporty"] .woocommerce ul.products::after,
html[data-bs-theme="sporty"] .woocommerce-page ul.products::before,
html[data-bs-theme="sporty"] .woocommerce-page ul.products::after,
body.bs-sporty-site .woocommerce ul.products::before,
body.bs-sporty-site .woocommerce ul.products::after {
  display: none !important;
  content: none !important;
}

html[data-bs-theme="sporty"] .woocommerce ul.products li.product,
html[data-bs-theme="sporty"] .woocommerce-page ul.products li.product,
html[data-bs-theme="sporty"] .woocommerce ul.products.columns-1 li.product,
html[data-bs-theme="sporty"] .woocommerce ul.products.columns-2 li.product,
html[data-bs-theme="sporty"] .woocommerce ul.products.columns-3 li.product,
html[data-bs-theme="sporty"] .woocommerce ul.products.columns-4 li.product,
html[data-bs-theme="sporty"] .woocommerce ul.products.columns-5 li.product,
html[data-bs-theme="sporty"] .woocommerce ul.products.columns-6 li.product,
body.bs-sporty-site.woocommerce ul.products li.product,
body.bs-sporty-site.woocommerce-page ul.products li.product,
body.bs-sporty-site.woocommerce ul.products.columns-1 li.product,
body.bs-sporty-site.woocommerce ul.products.columns-2 li.product,
body.bs-sporty-site.woocommerce ul.products.columns-3 li.product,
body.bs-sporty-site.woocommerce ul.products.columns-4 li.product,
body.bs-sporty-site.woocommerce ul.products.columns-5 li.product,
body.bs-sporty-site.woocommerce ul.products.columns-6 li.product {
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  clear: none !important;
  position: relative !important;
  display: grid !important;
  grid-template-columns: 1fr auto !important;
  grid-template-rows: 1fr auto !important;
  align-items: stretch !important;
  justify-self: stretch !important;
  border-radius: 22px !important;
  overflow: hidden !important;
  background: #fff !important;
  box-shadow: 0 12px 36px rgba(12, 35, 64, 0.1) !important;
  border: 1px solid rgba(12, 35, 64, 0.06) !important;
  box-sizing: border-box !important;
}

html[data-bs-theme="sporty"] .woocommerce ul.products li.product .woocommerce-loop-product__link,
body.bs-sporty-site.woocommerce ul.products li.product .woocommerce-loop-product__link {
  grid-column: 1 / -1 !important;
  grid-row: 1 !important;
  position: relative !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  grid-template-rows: minmax(var(--sp-card-hero-min-h), 1fr) auto auto auto !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
  text-decoration: none !important;
  color: inherit !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  background: #fff !important;
}

html[data-bs-theme="sporty"] .woocommerce ul.products li.product img,
body.bs-sporty-site.woocommerce ul.products li.product img {
  grid-row: 1 !important;
  grid-column: 1 !important;
  align-self: stretch !important;
  justify-self: center !important;
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  min-height: var(--sp-card-hero-min-h) !important;
  max-height: none !important;
  aspect-ratio: unset !important;
  object-fit: contain !important;
  object-position: center center !important;
  display: block !important;
  margin: 0 !important;
  padding: 0.75rem 0.85rem !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
  background: #fff !important;
}

html[data-bs-theme="sporty"] .woocommerce-loop-product__title,
body.bs-sporty-site .woocommerce-loop-product__title {
  grid-row: 2 !important;
  grid-column: 1 !important;
  font-family: var(--sp-font-body) !important;
  font-size: 1.08rem !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  letter-spacing: -0.01em !important;
  text-transform: none !important;
  color: var(--sp-text) !important;
  margin: 0 !important;
  padding: 1.1rem 1.15rem 0.35rem !important;
  word-wrap: break-word;
  overflow-wrap: break-word;
  hyphens: auto;
  max-width: none !important;
  background: #fff !important;
  border-radius: 20px 20px 0 0 !important;
  margin-top: 0 !important;
}

html[data-bs-theme="sporty"] .woocommerce ul.products li.product:not(:has(.star-rating)) .woocommerce-loop-product__title,
body.bs-sporty-site.woocommerce ul.products li.product:not(:has(.star-rating)) .woocommerce-loop-product__title {
  padding-bottom: 0.35rem !important;
}

html[data-bs-theme="sporty"] .woocommerce ul.products li.product:has(.star-rating) .woocommerce-loop-product__title,
body.bs-sporty-site.woocommerce ul.products li.product:has(.star-rating) .woocommerce-loop-product__title {
  padding-bottom: 0.15rem !important;
}

html[data-bs-theme="sporty"] .woocommerce ul.products li.product .star-rating,
body.bs-sporty-site.woocommerce ul.products li.product .star-rating {
  grid-row: 3 !important;
  grid-column: 1 !important;
  margin: 0 1.15rem 0.35rem !important;
  padding: 0 !important;
  background: #fff !important;
  background-image: none !important;
}

/* Empty line where stars would be when there is no rating */
html[data-bs-theme="sporty"] .woocommerce ul.products li.product:not(:has(.star-rating)) .woocommerce-loop-product__link::before,
body.bs-sporty-site.woocommerce ul.products li.product:not(:has(.star-rating)) .woocommerce-loop-product__link::before {
  content: "";
  grid-row: 3 !important;
  grid-column: 1 !important;
  display: block !important;
  height: var(--sp-card-stars-line-h) !important;
  margin: 0 1.15rem 0.35rem !important;
  background: #fff !important;
}

html[data-bs-theme="sporty"] .woocommerce ul.products li.product .screen-reader-text,
body.bs-sporty-site.woocommerce ul.products li.product .screen-reader-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Description blurb */
html[data-bs-theme="sporty"] .woocommerce ul.products li.product .woocommerce-loop-product__link::after,
body.bs-sporty-site.woocommerce ul.products li.product .woocommerce-loop-product__link::after {
  content: "Outdoor adventures and team experiences designed for groups across Sydney, the Blue Mountains and beyond.";
  grid-row: 4 !important;
  grid-column: 1 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 3 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 1.15rem 1rem !important;
  font-size: 0.84rem !important;
  line-height: 1.55 !important;
  color: var(--sp-muted) !important;
  background: #fff !important;
}

html[data-bs-theme="sporty"] .woocommerce ul.products li.product:not(:has(.star-rating)) .woocommerce-loop-product__link::after,
body.bs-sporty-site.woocommerce ul.products li.product:not(:has(.star-rating)) .woocommerce-loop-product__link::after {
  grid-row: 4 !important;
}

html[data-bs-theme="sporty"] .woocommerce ul.products li.product:has(.star-rating) .woocommerce-loop-product__link::after,
body.bs-sporty-site.woocommerce ul.products li.product:has(.star-rating) .woocommerce-loop-product__link::after {
  grid-row: 4 !important;
}

/* Footer tag (left) + CTA (right) */
html[data-bs-theme="sporty"] .woocommerce ul.products li.product::after,
body.bs-sporty-site.woocommerce ul.products li.product::after {
  content: "Team building";
  display: inline-block !important;
  white-space: nowrap;
  grid-column: 1 !important;
  grid-row: 2 !important;
  align-self: center !important;
  justify-self: start !important;
  margin: 0 0 1rem 1.15rem !important;
  padding: 0.28em 0.6em !important;
  font-family: var(--sp-font-body) !important;
  font-size: 0.68rem !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  color: var(--sp-text) !important;
  border: 1px solid var(--sp-border) !important;
  border-radius: 6px !important;
  background: #fff !important;
  pointer-events: none;
}

/* Star ratings — WooCommerce.woff2 is not in the static mirror; use Unicode stars */
body.bs-sporty-site .star-rating {
  float: none !important;
  display: inline-block !important;
  position: relative !important;
  height: 1.35em !important;
  width: 6.25em !important;
  line-height: 1.35 !important;
  font-family: var(--sp-font-body) !important;
  font-size: 1.1rem !important;
  overflow: hidden !important;
  vertical-align: middle;
  margin: 0 0.35rem 0 0 !important;
}

body.bs-sporty-site .star-rating::before {
  content: "★★★★★" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  float: none !important;
  letter-spacing: 0.1em;
  color: var(--sp-sand-dark) !important;
  font-family: inherit !important;
}

body.bs-sporty-site .star-rating span {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  float: none !important;
  overflow: hidden !important;
  padding-top: 0 !important;
  height: 100% !important;
  max-width: 100%;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
}

body.bs-sporty-site .star-rating span::before {
  content: "★★★★★" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  letter-spacing: 0.1em;
  color: var(--sp-sunset) !important;
  font-family: inherit !important;
  font-size: 1.1rem !important;
  line-height: 1.35 !important;
}

/* Shop cards — flat stars (no gradient bleed from hero) */
html[data-bs-theme="sporty"] .woocommerce ul.products li.product .star-rating::before,
html[data-bs-theme="sporty"] .woocommerce ul.products li.product .star-rating span::before,
body.bs-sporty-site.woocommerce ul.products li.product .star-rating::before,
body.bs-sporty-site.woocommerce ul.products li.product .star-rating span::before {
  background: none !important;
  background-image: none !important;
}

body.bs-sporty-site .woocommerce-product-rating {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.35rem 0.75rem;
  margin-bottom: 1rem !important;
}

body.bs-sporty-site .woocommerce-product-rating .star-rating {
  margin: 0 !important;
}

body.bs-sporty-site .woocommerce-review-link {
  font-size: 0.95rem;
  color: var(--sp-muted);
  text-decoration: none;
}

body.bs-sporty-site .woocommerce-review-link:hover {
  color: var(--sp-sunset);
}

html[data-bs-theme="sporty"] .woocommerce ul.products li.product .button,
html[data-bs-theme="sporty"] .woocommerce ul.products li.product a.button,
html[data-bs-theme="sporty"] .woocommerce-page ul.products li.product .button,
html[data-bs-theme="sporty"] .woocommerce-page ul.products li.product a.button,
body.bs-sporty-site.woocommerce ul.products li.product .button,
body.bs-sporty-site.woocommerce ul.products li.product a.button,
body.bs-sporty-site.woocommerce-page ul.products li.product .button,
body.bs-sporty-site.woocommerce-page ul.products li.product a.button {
  grid-column: 2 !important;
  grid-row: 2 !important;
  align-self: center !important;
  justify-self: end !important;
  display: inline-block !important;
  margin: 0 1.15rem 1rem 0.5rem !important;
  width: auto !important;
  max-width: 11rem !important;
  float: none !important;
  text-align: center !important;
  font-family: var(--sp-font-body) !important;
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  font-style: normal !important;
  letter-spacing: 0.01em !important;
  text-transform: none !important;
  line-height: 1.35 !important;
  padding: 0.8em 1.35em !important;
  border-radius: 14px !important;
  background: var(--sp-forest) !important;
  color: #fff !important;
  border: none !important;
  box-shadow: 0 8px 22px rgba(0, 168, 120, 0.38) !important;
  text-decoration: none !important;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease !important;
}

html[data-bs-theme="sporty"] .woocommerce ul.products li.product .button:hover,
html[data-bs-theme="sporty"] .woocommerce ul.products li.product a.button:hover,
html[data-bs-theme="sporty"] .woocommerce-page ul.products li.product .button:hover,
html[data-bs-theme="sporty"] .woocommerce-page ul.products li.product a.button:hover,
body.bs-sporty-site.woocommerce ul.products li.product .button:hover,
body.bs-sporty-site.woocommerce ul.products li.product a.button:hover,
body.bs-sporty-site.woocommerce-page ul.products li.product .button:hover,
body.bs-sporty-site.woocommerce-page ul.products li.product a.button:hover {
  color: #fff !important;
  background: var(--sp-forest-deep) !important;
  transform: translateY(-2px);
  box-shadow: 0 10px 26px rgba(0, 168, 120, 0.45) !important;
}

body.bs-sporty-site .woocommerce-pagination {
  margin-top: 2rem;
  text-align: center;
}

body.bs-sporty-site .woocommerce-pagination .page-numbers {
  display: inline-flex;
  gap: 0.35rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

body.bs-sporty-site .woocommerce-pagination .page-numbers li {
  margin: 0;
}

body.bs-sporty-site .woocommerce-pagination .page-numbers a,
body.bs-sporty-site .woocommerce-pagination .page-numbers span {
  display: inline-block;
  padding: 0.5rem 0.85rem;
  border-radius: 8px;
  border: 1px solid var(--sp-border);
  text-decoration: none;
}

body.bs-sporty-site .woocommerce-pagination .page-numbers .current {
  background: var(--sp-forest);
  color: #fff;
  border-color: var(--sp-forest);
}

@media (max-width: 1024px) {
  html[data-bs-theme="sporty"] body.woocommerce ul.products,
  html[data-bs-theme="sporty"] body.woocommerce-page ul.products,
  body.bs-sporty-site.woocommerce ul.products,
  body.bs-sporty-site.woocommerce-page ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 640px) {
  html[data-bs-theme="sporty"] body.woocommerce ul.products,
  html[data-bs-theme="sporty"] body.woocommerce-page ul.products,
  body.bs-sporty-site.woocommerce ul.products,
  body.bs-sporty-site.woocommerce-page ul.products {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 1.25rem !important;
  }
}

/* Last-resort: beat WooCommerce layout float widths (22.05%) on shop archive */
html[data-bs-theme="sporty"] body.woocommerce .woocommerce ul.products.columns-4 li.product,
html[data-bs-theme="sporty"] body.woocommerce-page .woocommerce ul.products.columns-4 li.product,
html.bs-sporty-site body.woocommerce .woocommerce ul.products li.product,
html.bs-sporty-site body.woocommerce-page .woocommerce ul.products li.product {
  float: none !important;
  width: 100% !important;
  max-width: none !important;
}

/* ── Single product — centered, wider description ────────── */
body.bs-sporty-site.single-product #primary,
body.bs-sporty-site.single-product .site-main {
  max-width: var(--sp-content-max);
  margin-left: auto !important;
  margin-right: auto !important;
  float: none !important;
  width: 100% !important;
}

body.bs-sporty-site.single-product div.product {
  max-width: 100%;
  margin: 0 auto;
  overflow: hidden;
}

body.bs-sporty-site.single-product div.product::after {
  content: "";
  display: table;
  clear: both;
}

body.bs-sporty-site.single-product div.product .woocommerce-product-gallery,
body.bs-sporty-site.single-product div.product .summary.entry-summary {
  float: none !important;
  width: 100% !important;
  max-width: var(--sp-product-desc-max);
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box;
}

body.bs-sporty-site.single-product div.product .summary.entry-summary {
  margin-bottom: 2rem !important;
  text-align: center;
}

body.bs-sporty-site.single-product .product_title {
  font-family: var(--sp-font-display) !important;
  font-size: clamp(1.5rem, 3.5vw, 2.25rem) !important;
  text-transform: uppercase;
  line-height: 1.15 !important;
  max-width: var(--sp-product-desc-max);
  margin-left: auto !important;
  margin-right: auto !important;
}

body.bs-sporty-site.single-product .woocommerce-product-details__short-description {
  text-align: left;
  max-width: var(--sp-product-desc-max);
  margin: 0 auto 1.5rem;
}

body.bs-sporty-site.single-product div.product .woocommerce-tabs.wc-tabs-wrapper {
  clear: both !important;
  float: none !important;
  width: 100% !important;
  max-width: var(--sp-product-desc-max) !important;
  margin: 2rem auto 3rem !important;
  padding: 0 var(--sp-section-x);
  box-sizing: border-box;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
}

body.bs-sporty-site.single-product .woocommerce-tabs ul.tabs,
body.bs-sporty-site.single-product .woocommerce-tabs ul.tabs.wc-tabs {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
  max-width: 100% !important;
  gap: 0.5rem;
  margin: 0 auto 1.5rem !important;
  padding: 0 !important;
  list-style: none !important;
  border: none !important;
  overflow: visible !important;
  text-align: center !important;
}

/* WooCommerce default: full-width line + left padding on tab bar */
body.bs-sporty-site.single-product .woocommerce-tabs ul.tabs::before,
body.bs-sporty-site.single-product .woocommerce-tabs ul.tabs::after {
  display: none !important;
  content: none !important;
  border: none !important;
}

body.bs-sporty-site.single-product .woocommerce-tabs ul.tabs li {
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  float: none !important;
}

body.bs-sporty-site.single-product .woocommerce-tabs ul.tabs li::before,
body.bs-sporty-site.single-product .woocommerce-tabs ul.tabs li::after {
  display: none !important;
  content: none !important;
  border: none !important;
  box-shadow: none !important;
}

body.bs-sporty-site.single-product .woocommerce-tabs ul.tabs li a {
  display: inline-block;
  padding: 0.65rem 1.25rem !important;
  border-radius: 8px !important;
  border: 1px solid var(--sp-border) !important;
  background: #fff !important;
  font-family: var(--sp-font-body) !important;
  font-weight: 600 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: var(--sp-text) !important;
  text-decoration: none !important;
}

body.bs-sporty-site.single-product .woocommerce-tabs ul.tabs li.active a,
body.bs-sporty-site.single-product .woocommerce-tabs ul.tabs li a:hover {
  background: var(--sp-forest) !important;
  color: #fff !important;
  border-color: var(--sp-forest) !important;
}

body.bs-sporty-site.single-product .woocommerce-Tabs-panel,
body.bs-sporty-site.single-product #tab-description,
body.bs-sporty-site.single-product #tab-reviews {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  padding: 2rem !important;
  background: #fff;
  border-radius: var(--sp-radius-lg);
  border: 1px solid var(--sp-border);
  box-shadow: var(--sp-shadow-sm);
  box-sizing: border-box;
}

body.bs-sporty-site.single-product #tab-description > h2:first-child,
body.bs-sporty-site.single-product .woocommerce-Tabs-panel--description > h2:first-child {
  text-align: center;
  margin-top: 0 !important;
  border-bottom: 2px solid var(--sp-sunset);
  padding-bottom: 0.5rem;
}

body.bs-sporty-site.single-product #tab-description p,
body.bs-sporty-site.single-product #tab-description ul,
body.bs-sporty-site.single-product #tab-description ol,
body.bs-sporty-site.single-product #tab-description h2,
body.bs-sporty-site.single-product #tab-description h3,
body.bs-sporty-site.single-product #tab-description h4,
body.bs-sporty-site.single-product #tab-reviews p,
body.bs-sporty-site.single-product #tab-reviews .commentlist {
  max-width: none !important;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

body.bs-sporty-site.single-product #tab-description p,
body.bs-sporty-site.single-product #tab-description li {
  text-align: left;
}

body.bs-sporty-site.single-product #tab-description img,
body.bs-sporty-site.single-product #tab-description .aligncenter {
  display: block;
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 100%;
  height: auto;
}

body.bs-sporty-site.single-product #tab-description img.alignright,
body.bs-sporty-site.single-product #tab-description .alignright {
  float: right;
  margin: 0 0 1rem 1.5rem;
  max-width: min(320px, 45%);
}

body.bs-sporty-site.single-product #tab-description::after {
  content: "";
  display: table;
  clear: both;
}

@media (min-width: 900px) {
  /* Wider 2-column layout: gallery (left) + summary (right) */
  body.bs-sporty-site.single-product div.product {
    max-width: var(--sp-content-max) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr) !important;
    gap: 2.25rem !important;
    align-items: start !important;
  }

  /* Grid: no float-clearing pseudo-element */
  body.bs-sporty-site.single-product div.product::after {
    display: none !important;
  }

  body.bs-sporty-site.single-product div.product .woocommerce-product-gallery,
  body.bs-sporty-site.single-product div.product .summary.entry-summary {
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
  }

  body.bs-sporty-site.single-product div.product .woocommerce-product-gallery {
    margin-bottom: 0 !important;
  }

  /* Tabs + related products should span full width */
  body.bs-sporty-site.single-product div.product .woocommerce-tabs.wc-tabs-wrapper,
  body.bs-sporty-site.single-product div.product section.related.products {
    grid-column: 1 / -1 !important;
  }

  body.bs-sporty-site.single-product div.product .woocommerce-tabs.wc-tabs-wrapper {
    max-width: none !important;
    padding: 0 !important;
    margin: 2rem 0 3rem !important;
  }
}

@media (max-width: 640px) {
  body.bs-sporty-site.single-product div.product .woocommerce-tabs.wc-tabs-wrapper {
    padding: 0 0.75rem;
  }

  body.bs-sporty-site.single-product #tab-description img.alignright,
  body.bs-sporty-site.single-product #tab-description .alignright {
    float: none;
    margin: 1rem auto;
    max-width: 100%;
  }
}

/* ── Enquiry page (/enquiry/) ─────────────────────────────── */
body.bs-sporty-site main#content:has(.bushsports-enquiry-form) .page-header {
  display: none !important;
}

body.bs-sporty-site main#content:has(.bushsports-enquiry-form) .page-content {
  max-width: var(--sp-content-max);
  margin: 0 auto;
  padding: var(--sp-section-y) var(--sp-section-x);
  box-sizing: border-box;
}

body.bs-sporty-site main#content:has(.bushsports-enquiry-form) .page-content > p {
  max-width: none;
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

body.bs-sporty-site main#content:has(.bushsports-enquiry-form) .wp-block-columns.has-2-columns,
body.bs-sporty-site main#content:has(.bushsports-enquiry-form) .wp-block-columns.is-layout-flex {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 2rem !important;
  width: 100% !important;
  max-width: var(--sp-content-max) !important;
  margin: 0 auto 2rem !important;
  align-items: start !important;
}

body.bs-sporty-site main#content:has(.bushsports-enquiry-form) .wp-block-column {
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
}

body.bs-sporty-site main#content:has(.bushsports-enquiry-form) .bushsports-enquiry-form {
  max-width: 100%;
  margin: 0 auto;
}

body.bs-sporty-site main#content:has(.bushsports-enquiry-form) .wp-block-column figure {
  margin: 1rem 0 0;
}

body.bs-sporty-site main#content:has(.bushsports-enquiry-form) .wp-block-column iframe {
  display: block;
  width: 100% !important;
  max-width: 100%;
  min-height: 420px;
  height: auto;
  border: 0;
  border-radius: var(--sp-radius-lg);
  box-shadow: var(--sp-shadow-sm);
}

@media (max-width: 900px) {
  body.bs-sporty-site main#content:has(.bushsports-enquiry-form) .wp-block-columns.has-2-columns,
  body.bs-sporty-site main#content:has(.bushsports-enquiry-form) .wp-block-columns.is-layout-flex {
    grid-template-columns: 1fr !important;
  }

  body.bs-sporty-site main#content:has(.bushsports-enquiry-form) .wp-block-column iframe {
    min-height: 320px;
  }
}

/* ── WordPress pages (non-product: main#content.type-page) ─── */
body.bs-sporty-site main#content.type-page {
  max-width: var(--sp-content-max);
  margin-left: auto;
  margin-right: auto;
  padding: 0 var(--sp-section-x) var(--sp-section-y);
  box-sizing: border-box;
  width: 100%;
}

body.bs-sporty-site main#content.type-page .page-header {
  padding-top: var(--sp-section-y);
  text-align: center;
  box-sizing: border-box;
}

body.bs-sporty-site main#content.type-page .page-header .entry-title {
  margin: 0;
}

body.bs-sporty-site main#content.type-page .page-content {
  width: 100%;
  box-sizing: border-box;
}

body.bs-sporty-site main#content.type-page .page-content > p,
body.bs-sporty-site main#content.type-page .page-content > h2,
body.bs-sporty-site main#content.type-page .page-content > h3,
body.bs-sporty-site main#content.type-page .page-content > ul,
body.bs-sporty-site main#content.type-page .page-content > ol {
  max-width: 52rem;
  margin-left: auto;
  margin-right: auto;
}

body.bs-sporty-site main#content.type-page .page-content .alignright,
body.bs-sporty-site main#content.type-page .page-content img.alignright,
body.bs-sporty-site main#content.type-page .page-content .alignleft,
body.bs-sporty-site main#content.type-page .page-content img.alignleft,
body.bs-sporty-site main#content.type-page .page-content .aligncenter,
body.bs-sporty-site main#content.type-page .page-content img.aligncenter,
body.bs-sporty-site main#content.type-page .page-content .wp-caption {
  float: none !important;
  margin: 1.5rem auto !important;
  display: block;
  max-width: 100%;
  width: auto;
  height: auto;
  text-align: center;
}

body.bs-sporty-site main#content.type-page .page-content .wp-caption img {
  width: 100%;
  max-width: min(600px, 100%);
  height: auto;
  margin: 0 auto;
}

body.bs-sporty-site main#content.type-page .page-content .wp-caption-text {
  font-size: 0.9rem;
  color: var(--sp-muted, #5a6b5e);
  margin-top: 0.5rem;
}

body.bs-sporty-site main#content.type-page .page-content > .elementor {
  width: 100%;
  max-width: 100%;
}

body.bs-sporty-site main#content.type-page .comments-area,
body.bs-sporty-site main#content.type-page #respond,
body.bs-sporty-site main#content.type-page .comment-respond {
  display: none !important;
}

/* ── Content links ───────────────────────────────────────── */
body.bs-sporty-site main a:not(.elementor-button):not(.elementor-item):not(.e-image-link-base) {
  color: var(--sp-forest-deep);
  font-weight: 600;
  text-underline-offset: 3px;
}

body.bs-sporty-site main a:not(.elementor-button):not(.elementor-item):hover {
  color: var(--sp-sunset);
}

/* ── Page enter ──────────────────────────────────────────── */
@keyframes sp-rise {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

body.bs-sporty-site main#content {
  animation: sp-rise 0.5s ease-out;
}

/* ── Mobile structure ──────────────────────────────────────── */
@media (max-width: 767px) {
  :root {
    --sp-section-y: 2rem;
    --sp-section-x: 1rem;
  }

  body.bs-sporty-site main .e-con.e-parent > .e-con-inner > .e-con.e-child {
    flex: 1 1 100% !important;
  }

  body.bs-sporty-site .elementor-nav-menu .elementor-item {
    font-size: 0.85rem !important;
  }
}

@media (min-width: 900px) {
  body.bs-sporty-site main .e-con.e-parent > .e-con-inner > .e-con.e-child:first-child:nth-last-child(2),
  body.bs-sporty-site main .e-con.e-parent > .e-con-inner > .e-con.e-child:last-child:nth-child(2) {
    flex: 1 1 42% !important;
  }
}

/* ── Sporty structural overrides (more distinct than adventure) ── */
body.bs-sporty-site main .e-con.e-parent > .e-con-inner {
  /* Sporty uses a two-column grid lane instead of adventure flex rows */
  display: grid !important;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr) !important;
  align-items: start !important;
  justify-items: start !important;
  gap: var(--sp-block-gap) !important;
  flex-wrap: nowrap !important;
}

body.bs-sporty-site main .e-con.e-parent > .e-con-inner > .e-con.e-child {
  /* Prevent legacy flex sizing from affecting the grid */
  flex: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Wider sporty container (more “open air” than adventure) */
body.bs-sporty-site main .e-con.e-parent > .e-con-inner {
  max-width: 1320px !important;
}

/* Alternate direction: odd sections = normal, even sections = reversed */
body.bs-sporty-site
  main
  .elementor[data-elementor-type="wp-page"]
  > .e-con.e-parent:nth-child(even)
  > .e-con-inner {
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr) !important;
  justify-items: end !important;
}

body.bs-sporty-site
  main
  .elementor[data-elementor-type="wp-page"]
  > .e-con.e-parent:nth-child(even)
  > .e-con-inner
  > .e-con.e-child:first-child {
  order: 2;
}

body.bs-sporty-site
  main
  .elementor[data-elementor-type="wp-page"]
  > .e-con.e-parent:nth-child(even)
  > .e-con-inner
  > .e-con.e-child:last-child {
  order: 1;
}

@media (max-width: 900px) {
  body.bs-sporty-site main .e-con.e-parent > .e-con-inner {
    grid-template-columns: 1fr !important;
    justify-items: stretch !important;
  }

  body.bs-sporty-site
    main
    .elementor[data-elementor-type="wp-page"]
    > .e-con.e-parent:nth-child(even)
    > .e-con-inner
    > .e-con.e-child:first-child,
  body.bs-sporty-site
    main
    .elementor[data-elementor-type="wp-page"]
    > .e-con.e-parent:nth-child(even)
    > .e-con-inner
    > .e-con.e-child:last-child {
    order: 0;
  }
}

/* Replace adventure-style alternating backgrounds with a "fitness lane" accent */
body.bs-sporty-site
  main
  .elementor[data-elementor-type="wp-page"]
  > .e-con.e-parent:nth-child(odd):not(:first-child),
body.bs-sporty-site
  main
  .elementor[data-elementor-type="wp-page"]
  > .e-con.e-parent:nth-child(even):not(:first-child) {
  background: transparent !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  padding-left: clamp(0.75rem, 2vw, 1.25rem) !important;
  position: relative;
}

body.bs-sporty-site
  main
  .elementor[data-elementor-type="wp-page"]
  > .e-con.e-parent:not(:first-child)::before {
  content: "";
  position: absolute;
  left: 0;
  top: 22px;
  bottom: 22px;
  width: 4px;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--sp-forest) 0%, var(--sp-sky) 100%);
  opacity: 0.55;
  pointer-events: none;
}

@media (max-width: 900px) {
  body.bs-sporty-site
    main
    .elementor[data-elementor-type="wp-page"]
    > .e-con.e-parent:not(:first-child) {
    padding-left: 0 !important;
  }

  body.bs-sporty-site
    main
    .elementor[data-elementor-type="wp-page"]
    > .e-con.e-parent:not(:first-child)::before {
    display: none !important;
  }
}
