/* Pro Wood Bats Pro — layout primitives */

.pwb-container {
	width: 100%;
	max-width: var(--pwb-container);
	margin: 0 auto;
	padding: 0 var(--pwb-sp-5);
}
.pwb-container--narrow { max-width: var(--pwb-container-narrow); }
.pwb-container--wide   { max-width: var(--pwb-container-wide); }

.pwb-section { padding: var(--pwb-sp-8) 0; position: relative; overflow: hidden; }
.pwb-section--narrow { padding: var(--pwb-sp-6) 0; }
.pwb-section + .pwb-section { border-top: 1px solid rgba(0,0,0,0.04); }

.pwb-section__header { max-width: 780px; margin: 0 0 var(--pwb-sp-6); }
.pwb-section__title  { margin: 0 0 var(--pwb-sp-3); }
.pwb-section__lede   { color: var(--pwb-muted); font-size: var(--pwb-fs-500); margin: 0; }
.pwb-section__header--inverse .pwb-section__title,
.pwb-section__title--inverse  { color: var(--pwb-ash); }
.pwb-section__header--inverse .pwb-section__lede,
.pwb-section__lede--inverse   { color: rgba(255,255,255,0.78); }

/* Backgrounds */
.pwb-bg-warm    { background: var(--pwb-bg-warm); color: var(--pwb-ink); }
.pwb-bg-dugout  { background: linear-gradient(180deg, var(--pwb-navy) 0%, var(--pwb-navy-2) 100%); color: var(--pwb-ash); }
.pwb-bg-dugout h1, .pwb-bg-dugout h2, .pwb-bg-dugout h3 { color: var(--pwb-ash); }
.pwb-bg-dugout::after {
	content: ''; position: absolute; inset: 0; pointer-events: none;
	background: radial-gradient(ellipse at top, rgba(244,185,66,0.10), transparent 60%);
}
.pwb-bg-wood    { background: linear-gradient(180deg, #efe6d3 0%, #e6d8b8 100%); color: var(--pwb-ink); }
.pwb-bg-stadium { background: radial-gradient(ellipse at top, var(--pwb-gold) 0%, var(--pwb-leather) 50%, var(--pwb-navy) 100%); color: var(--pwb-white); }

/* Wood grain overlay — contained, behind content, never leaks past parent */
.pwb-wood-grain {
	position: absolute; inset: 0;
	background-image:
		repeating-linear-gradient(98deg, rgba(139,90,43,0.08) 0 2px, transparent 2px 14px),
		repeating-linear-gradient(102deg, rgba(110,71,32,0.07) 0 1px, transparent 1px 22px);
	pointer-events: none;
	opacity: var(--pwb-grain-opacity);
	mix-blend-mode: multiply;
	z-index: 0;
}
/* Anything containing .pwb-wood-grain must clip overflow + create a stacking context */
.pwb-section,
.pwb-card,
.pwb-card__media,
.pwb-product-box__media,
.pwb-hero,
.pwb-shop__hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
}
.pwb-section > .pwb-container,
.pwb-hero__row,
.pwb-card__body,
.pwb-product-box__body {
	position: relative;
	z-index: 1;
}

/* Stadium glow */
.pwb-stadium-glow {
	position: absolute; top: -120px; right: -120px;
	width: 480px; height: 480px;
	background: radial-gradient(circle, rgba(244,185,66,0.30) 0%, transparent 70%);
	pointer-events: none;
	filter: blur(40px);
}

/* Stitching divider */
.pwb-stitching {
	display: block;
	height: 12px;
	background-image: radial-gradient(circle, var(--pwb-red) 3px, transparent 4px);
	background-size: 18px 12px;
	background-repeat: repeat-x;
	opacity: 0.6;
}

/* Grid */
.pwb-grid { display: grid; gap: var(--pwb-sp-5); }
.pwb-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pwb-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pwb-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pwb-grid--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.pwb-grid--cards { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }

@media (max-width: 1024px) {
	.pwb-grid--6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.pwb-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pwb-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.pwb-grid--6, .pwb-grid--4, .pwb-grid--3, .pwb-grid--2 { grid-template-columns: 1fr; }
	.pwb-section { padding: var(--pwb-sp-7) 0; }
}

/* Site header */
.pwb-site-header {
	position: sticky; top: 0; z-index: 50;
	background: var(--pwb-white);
	border-bottom: 1px solid var(--pwb-border);
}
.pwb-site-header__row {
	display: flex; align-items: center; gap: var(--pwb-sp-5);
	padding: var(--pwb-sp-3) var(--pwb-sp-5);
}
.pwb-site-header__title { display: flex; flex-direction: column; text-decoration: none; color: var(--pwb-navy); line-height: 1; }
.pwb-site-header__title-main { font-family: var(--pwb-font-display); font-size: var(--pwb-fs-700); letter-spacing: 0.02em; }
.pwb-site-header__title-sub  { font-size: var(--pwb-fs-200); color: var(--pwb-muted); letter-spacing: 0.04em; text-transform: uppercase; }
.pwb-site-header__nav { flex: 1; }
.pwb-menu { list-style: none; margin: 0; padding: 0; display: flex; gap: var(--pwb-sp-5); flex-wrap: wrap; }
.pwb-menu a { color: var(--pwb-navy); text-decoration: none; font-weight: 600; font-size: var(--pwb-fs-300); }
.pwb-menu a:hover { color: var(--pwb-red); }
.pwb-site-header__actions { display: flex; gap: var(--pwb-sp-3); align-items: center; }
.pwb-site-header__search-toggle { padding: var(--pwb-sp-2) var(--pwb-sp-3); }

@media (max-width: 900px) {
	.pwb-site-header__nav { display: none; }
}

.pwb-breadcrumb-bar {
	background: var(--pwb-ash);
	padding: var(--pwb-sp-2) 0;
	border-bottom: 1px solid var(--pwb-border);
}
.pwb-breadcrumbs__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--pwb-sp-2); font-size: var(--pwb-fs-300); }
.pwb-breadcrumbs__sep { margin: 0 var(--pwb-sp-2); color: var(--pwb-muted); }
.pwb-breadcrumbs__link { color: var(--pwb-navy); text-decoration: none; }
.pwb-breadcrumbs__link:hover { color: var(--pwb-red); }
.pwb-breadcrumbs__current { color: var(--pwb-muted); }

/* Site footer */
.pwb-site-footer {
	background: var(--pwb-navy);
	color: rgba(255,255,255,0.86);
	padding: var(--pwb-sp-8) 0 var(--pwb-sp-5);
	margin-top: var(--pwb-sp-8);
}
.pwb-site-footer a { color: var(--pwb-ash); }
.pwb-site-footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: var(--pwb-sp-7); margin-bottom: var(--pwb-sp-7); }
@media (max-width: 900px) { .pwb-site-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .pwb-site-footer__grid { grid-template-columns: 1fr; } }
.pwb-site-footer__title { font-family: var(--pwb-font-display); font-size: var(--pwb-fs-700); color: var(--pwb-white); text-decoration: none; }
.pwb-site-footer__tag { color: rgba(255,255,255,0.7); font-size: var(--pwb-fs-300); }
.pwb-site-footer__disclosure { color: var(--pwb-gold); font-size: var(--pwb-fs-300); border-left: 3px solid var(--pwb-gold); padding-left: var(--pwb-sp-3); }
.pwb-widget__title { color: var(--pwb-white); font-family: var(--pwb-font-display); font-size: var(--pwb-fs-500); margin-bottom: var(--pwb-sp-3); }
.pwb-link-list { list-style: none; padding: 0; margin: 0; }
.pwb-link-list li { margin-bottom: var(--pwb-sp-2); }
.pwb-link-list a { text-decoration: none; }
.pwb-link-list a:hover { color: var(--pwb-gold); }
.pwb-site-footer__bottom { display: flex; flex-wrap: wrap; gap: var(--pwb-sp-5); align-items: center; justify-content: space-between; padding-top: var(--pwb-sp-5); border-top: 1px solid rgba(255,255,255,0.1); }
.pwb-legal-menu { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: var(--pwb-sp-4); font-size: var(--pwb-fs-300); }
.pwb-site-footer__copy { font-size: var(--pwb-fs-300); color: rgba(255,255,255,0.6); margin: 0; }

/* Sticky CTA */
.pwb-sticky-cta {
	position: fixed; left: 0; right: 0; bottom: 0;
	background: var(--pwb-white);
	border-top: 1px solid var(--pwb-border);
	padding: var(--pwb-sp-3);
	z-index: 40;
	box-shadow: var(--pwb-shadow-2);
	display: none;
	aria-hidden: true;
}
.pwb-sticky-cta__link { display: flex; justify-content: space-between; align-items: center; width: 100%; }
@media (max-width: 900px) {
	.pwb-sticky-cta { display: block; }
	body { padding-bottom: 72px; }
}
.pwb-sticky-cta[data-pwb-sticky-hidden="1"] { transform: translateY(120%); transition: transform var(--pwb-transition-lg); }

/* Eyebrow */
.pwb-eyebrow {
	display: inline-block;
	font-family: var(--pwb-font-mono);
	font-size: var(--pwb-fs-200);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--pwb-gold);
	margin-bottom: var(--pwb-sp-3);
}

/* Disclosure pill + safety */
.pwb-disclosure {
	display: inline-flex;
	align-items: center;
	gap: var(--pwb-sp-3);
	background: rgba(244,185,66,0.18);
	border: 1px solid rgba(244,185,66,0.5);
	color: var(--pwb-leather-2);
	padding: var(--pwb-sp-2) var(--pwb-sp-3);
	border-radius: var(--pwb-radius-pill);
	font-size: var(--pwb-fs-300);
	margin: 0 0 var(--pwb-sp-4);
}
.pwb-pill {
	background: var(--pwb-gold);
	color: var(--pwb-navy);
	padding: 2px 8px;
	border-radius: var(--pwb-radius-pill);
	font-family: var(--pwb-font-mono);
	font-size: var(--pwb-fs-200);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.pwb-safety {
	display: flex;
	gap: var(--pwb-sp-4);
	background: #FFF8E5;
	border: 1px solid #F4D078;
	border-left: 6px solid var(--pwb-red);
	padding: var(--pwb-sp-4) var(--pwb-sp-5);
	border-radius: var(--pwb-radius-md);
	margin: var(--pwb-sp-5) 0;
	color: var(--pwb-charcoal);
}
.pwb-safety__icon {
	flex: 0 0 32px; height: 32px; width: 32px;
	border-radius: var(--pwb-radius-pill);
	background: var(--pwb-red); color: var(--pwb-white);
	display: grid; place-items: center;
	font-weight: 700;
}
.pwb-safety__title { display: block; margin-bottom: 4px; font-family: var(--pwb-font-display); font-size: var(--pwb-fs-500); }
.pwb-safety__text  { margin: 0; font-size: var(--pwb-fs-300); }
