/* Golf Cart Battery Source v1.0.4: fitment guide, PDP fitment, brand pages + index, long category intros, videos. */

.gcbs-prose--wide { max-width: none; }
.gcbs-prose--wide > .gcbs-page-content > p,
.gcbs-prose--wide > .gcbs-page-content > ul,
.gcbs-prose--wide > .gcbs-page-content > ol,
.gcbs-prose--wide > .gcbs-page-content > h2,
.gcbs-prose--wide > .gcbs-page-content > h3 { max-width: 48rem; }

/* ---------- Fitment guide ---------- */
.gcbs-fit { margin: 1.5rem 0 2rem; }
.gcbs-fit__filters {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .75rem 1rem; align-items: end;
  background: var(--gcbs-green-50); border: 1px solid var(--gcbs-green-100); border-radius: 10px; padding: 1rem;
  position: sticky; top: 0; z-index: 5;
}
.gcbs-fit__filters label { display: flex; flex-direction: column; gap: .3rem; font-size: .8rem; font-weight: 600; color: var(--gcbs-title); text-transform: uppercase; letter-spacing: .03em; }
.gcbs-fit__filters select,
.gcbs-fit__filters input {
  min-height: 44px; border: 1px solid #c9d3cd; border-radius: 6px; padding: .4rem .6rem; font: inherit; font-size: .95rem;
  text-transform: none; letter-spacing: 0; background: #fff; color: var(--gcbs-body-text); width: 100%;
}
.gcbs-fit__filters select:focus, .gcbs-fit__filters input:focus { outline: 2px solid var(--gcbs-green-700); outline-offset: 1px; }
.gcbs-fit__search { grid-column: span 2; }
.gcbs-fit__reset {
  min-height: 44px; border: 1px solid var(--gcbs-green-700); color: var(--gcbs-green-700); background: #fff; border-radius: 6px;
  font-weight: 600; padding: 0 1rem; cursor: pointer;
}
.gcbs-fit__reset:hover { background: var(--gcbs-green-700); color: #fff; }
.gcbs-fit__count { margin: .75rem 0 0; font-size: .9rem; color: var(--gcbs-slate); }
.gcbs-fit__make { margin-top: 2rem; }
.gcbs-fit__make h3 { font-size: 1.3rem; border-bottom: 3px solid var(--gcbs-green); padding-bottom: .35rem; display: inline-block; }
.gcbs-fit__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: .5rem 0 1rem; }
.gcbs-fit-table { width: 100%; border-collapse: collapse; font-size: .92rem; min-width: 640px; }
.gcbs-fit-table th, .gcbs-fit-table td { border-bottom: 1px solid #e3e8e5; padding: .6rem .7rem; text-align: left; vertical-align: top; }
.gcbs-fit-table thead th { background: var(--gcbs-charcoal); color: #fff; font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; }
.gcbs-fit-table tbody th { font-weight: 600; color: var(--gcbs-title); width: 22%; }
.gcbs-fit-table tbody tr:nth-child(even) { background: #f7f9f8; }
.gcbs-fit-table td:nth-child(2), .gcbs-fit-table td:nth-child(3) { white-space: nowrap; }
.gcbs-fit__note { display: block; font-weight: 400; font-size: .8rem; color: var(--gcbs-slate); margin-top: .2rem; }
.gcbs-fit__items { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.gcbs-fit__items li { margin: 0; line-height: 1.35; }
.gcbs-fit__items a { font-weight: 600; color: var(--gcbs-green-700); text-decoration: none; }
.gcbs-fit__items a:hover { text-decoration: underline; color: var(--gcbs-title); }
.gcbs-fit__meta { display: block; font-size: .78rem; color: #5f6870; }
.gcbs-fit__legend { font-size: .85rem; color: var(--gcbs-slate); }
.gcbs-fit__empty { padding: 1rem; background: #fff7ed; border: 1px solid #fed7aa; border-radius: 8px; }
.gcbs-fit [hidden] { display: none !important; }
@media (max-width: 640px) {
  .gcbs-fit__filters { position: static; grid-template-columns: 1fr 1fr; }
  .gcbs-fit__search { grid-column: 1 / -1; }
}

/* ---------- PDP fitment ---------- */
.gcbs-pdp-fit { clear: both; margin: 2rem 0; padding: 1.25rem 1.25rem .5rem; border: 1px solid var(--gcbs-green-100); border-left: 5px solid var(--gcbs-green); border-radius: 10px; background: #fff; }
.gcbs-pdp-fit h2 { margin-top: 0; font-size: 1.3rem; }
.gcbs-pdp-fit h3 { font-size: 1.05rem; margin-top: 1.25rem; }
.gcbs-pdp-fit .gcbs-fit-table { min-width: 520px; }
.gcbs-pdp-fit .gcbs-fit-table tbody td:first-child { font-weight: 600; color: var(--gcbs-title); }
.gcbs-fit__items--alts { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: .6rem 1rem; }
.gcbs-pdp-fit__help { font-size: .9rem; color: var(--gcbs-slate); }

/* ---------- Videos (click-to-load) ---------- */
.gcbs-videos { clear: both; margin: 2rem 0; }
.gcbs-videos h2 { font-size: 1.3rem; }
.gcbs-videos__intro { color: var(--gcbs-slate); font-size: .9rem; }
.gcbs-videos__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.25rem; }
.gcbs-yt { margin: 0; }
.gcbs-yt__btn, .gcbs-yt__frame { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: 10px; overflow: hidden; background: #000; padding: 0; cursor: pointer; }
.gcbs-yt__btn img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s ease, opacity .25s ease; opacity: .92; }
.gcbs-yt__btn:hover img, .gcbs-yt__btn:focus-visible img { transform: scale(1.03); opacity: 1; }
.gcbs-yt__btn:focus-visible { outline: 3px solid var(--gcbs-green-300); outline-offset: 2px; }
.gcbs-yt__play { position: absolute; left: 50%; top: 50%; width: 68px; height: 48px; margin: -24px 0 0 -34px; border-radius: 12px; background: rgba(24,33,42,.85); transition: background .2s; }
.gcbs-yt__play::after { content: ""; position: absolute; left: 27px; top: 14px; border-style: solid; border-width: 10px 0 10px 17px; border-color: transparent transparent transparent #fff; }
.gcbs-yt__btn:hover .gcbs-yt__play { background: var(--gcbs-green-700); }
.gcbs-yt__time { position: absolute; right: 8px; bottom: 8px; background: rgba(0,0,0,.75); color: #fff; font-size: .75rem; padding: 1px 6px; border-radius: 4px; }
.gcbs-yt figcaption { font-size: .9rem; font-weight: 600; color: var(--gcbs-title); margin-top: .5rem; line-height: 1.35; }
.gcbs-yt__ch { display: block; font-weight: 400; font-size: .78rem; color: #6b757d; }

/* ---------- Brand index ---------- */

/* ---------- Brand archive content ---------- */
.gcbs-brand-page { margin: 2.5rem 0 1rem; padding-top: 1.5rem; border-top: 1px solid #e3e8e5; }
.gcbs-brand-page ul { padding-left: 1.2rem; }
.gcbs-brand-page__cats { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0 !important; }
.gcbs-brand-page__cats li { margin: 0; }
.gcbs-brand-page__cats a { display: inline-block; padding: .35rem .8rem; border: 1px solid var(--gcbs-green-100); border-radius: 999px; background: var(--gcbs-green-50); color: var(--gcbs-green-800); text-decoration: none; font-size: .88rem; font-weight: 600; }
.gcbs-brand-page__cats a:hover { background: var(--gcbs-green-700); color: #fff; }
.gcbs-brand-page__links { font-size: .95rem; }

/* ---------- Long category intros ---------- */
.gcbs-long-intro { margin: 2.5rem 0 1rem; padding-top: 1.5rem; border-top: 1px solid #e3e8e5; }
.gcbs-long-intro h2 { font-size: 1.35rem; }
.gcbs-spec-table { width: 100%; border-collapse: collapse; font-size: .92rem; margin: 1rem 0; }
.gcbs-spec-table th, .gcbs-spec-table td { border: 1px solid #e3e8e5; padding: .5rem .65rem; text-align: left; }
.gcbs-spec-table thead th { background: var(--gcbs-charcoal); color: #fff; }
.gcbs-spec-note { font-size: .85rem; color: var(--gcbs-slate); }
.gcbs-guide-cta { margin: 2rem 0; padding: 1.25rem; border-radius: 10px; background: var(--gcbs-green-50); border: 1px solid var(--gcbs-green-100); }
