/* =====================================================================
   Bromsgrove RFC — v1.1 additions (Pure Marketing, Oct 2026)
   Menu hover fix, home partners strip and quote slider, team squads.
   Loaded after site.css.
   ===================================================================== */

/* ------------------------------------------------------------- menu: hover that holds */
@media (min-width: 1100px) {
	/* Each item fills the header's height, so the pointer stays inside it on the way down to a panel. */
	.brfc-nav { align-self: stretch; display: flex; }
	.brfc-nav__list { align-items: stretch; }
	.brfc-nav__item { align-items: center; }
	/* Panels open on hover and close after a short grace period, so a slightly
	   wandering pointer does not snap them shut. */
	.brfc-panel, .brfc-drop { display: block; visibility: hidden; opacity: 0; transition: opacity 0.15s ease, visibility 0s linear 0.25s; }
	.brfc-nav__item:hover > .brfc-drop, .brfc-nav__item:focus-within > .brfc-drop, .brfc-nav__item.is-open > .brfc-drop,
	.brfc-nav__item:hover > .brfc-panel, .brfc-nav__item:focus-within > .brfc-panel, .brfc-nav__item.is-open > .brfc-panel {
		visibility: visible; opacity: 1; transition-delay: 0s;
	}
	.brfc-panel { z-index: 5; }
}

/* ------------------------------------------------------------- home: partners */
/* partner logos: a slow, continuous strip (Pure Marketing first, from Teams > Sponsors) */
.brfc-marquee {
	overflow: hidden; margin: 0 calc(var(--gutter) * -1) clamp(28px, 4vw, 44px); padding: 4px 0;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.brfc-marquee__track { display: flex; gap: 16px; width: max-content; margin: 0; padding: 0; list-style: none; animation: brfc-marquee 40s linear infinite; }
.brfc-marquee:hover .brfc-marquee__track, .brfc-marquee:focus-within .brfc-marquee__track { animation-play-state: paused; }
.brfc-marquee__item { flex: none; }
.brfc-marquee__item > a, .brfc-marquee__item > img {
	display: flex; align-items: center; justify-content: center;
	width: 200px; height: 104px; padding: 16px 22px; border-radius: var(--r);
	background: #fff; object-fit: contain;
}
.brfc-marquee__item a img { display: block; width: 100%; height: 72px; object-fit: contain; }
.brfc-marquee__item a { transition: transform 0.2s ease; }
.brfc-marquee__item a:hover { transform: translateY(-3px); }
@keyframes brfc-marquee { to { transform: translateX(calc(-50% - 8px)); } }
@media (prefers-reduced-motion: reduce) {
	.brfc-marquee { -webkit-mask-image: none; mask-image: none; margin-left: 0; margin-right: 0; overflow-x: auto; }
	.brfc-marquee__track { animation: none; }
	.brfc-marquee__item[aria-hidden="true"] { display: none; }
}

/* partner quotes: one at a time */
.brfc-qslider { position: relative; }
.brfc-qslider__track { gap: 24px; }
.brfc-qslider__track > .brfc-quote { scroll-snap-align: start; }
.brfc-qslider__nav { display: flex; gap: 8px; margin-top: 16px; }
.brfc-qslider .fx-slider__btn { background: transparent; border-color: var(--line-light); color: #fff; }
.brfc-qslider .fx-slider__btn:hover { background: #fff; color: var(--ink); }
@media (min-width: 768px) { .brfc-qslider__nav { position: absolute; right: clamp(28px, 4vw, 44px); bottom: clamp(28px, 4vw, 44px); margin: 0; } }
.brfc-qslider .brfc-quote blockquote p { max-width: 60ch; font-size: clamp(18px, 2vw, 24px); line-height: 1.5; }
@media (min-width: 768px) { .brfc-qslider .brfc-quote figcaption { padding-right: 110px; } .brfc-qslider .brfc-quote blockquote { padding-right: 72px; } }
/* On phones the big quote mark sits above the words rather than over them. */
@media (max-width: 767px) {
	.brfc-qslider .brfc-quote { padding-top: 76px; }
	.brfc-qslider .brfc-quote::before { top: 0; left: 24px; right: auto; font-size: 110px; }
}

/* ------------------------------------------------------------- teams (Teams > Players) */
.brfc-team + .brfc-team { padding-top: 0; }
.brfc-layout + .brfc-team { padding-top: clamp(32px, 4vw, 48px); }
.brfc-team__head { margin-bottom: 28px; }
.brfc-team__head .brfc-h2 { margin-bottom: 8px; }
.brfc-team__intro { max-width: 62ch; color: var(--muted); }
.brfc-squad + .brfc-squad { margin-top: clamp(36px, 5vw, 56px); }
.brfc-squad__title {
	display: flex; align-items: center; gap: 16px; margin: 0 0 24px;
	font-family: var(--font-display); font-size: clamp(24px, 2.6vw, 30px); font-weight: 800; text-transform: uppercase; color: var(--ink);
}
.brfc-squad__title::after { content: ""; flex: 1; height: 2px; background: var(--line); }
.brfc-squad__grid { display: grid; gap: 32px 20px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
@media (min-width: 640px) { .brfc-squad__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 992px) { .brfc-squad__grid { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .brfc-squad__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.brfc-player .fx-member__photo { width: min(128px, 100%); }
.brfc-player__sponsor { display: flex; flex-direction: column; align-items: center; gap: 6px; margin-top: 10px; font-size: 13px; }
.brfc-player__sponsor > span { font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--red); }
.brfc-player__sponsor strong { color: var(--ink); font-weight: 600; line-height: 1.3; }
.brfc-player__sponsor a { color: var(--ink); text-decoration: none; }
.brfc-player__sponsor a:hover strong { color: var(--red); }
.brfc-player__logo { display: block; width: auto; max-width: 112px; max-height: 52px; object-fit: contain; }
.brfc-player__sponsor.is-open a { font-size: 12px; color: var(--muted); text-decoration: underline; text-underline-offset: 3px; }
.brfc-player__sponsor.is-open a:hover { color: var(--red); }

.brfc-teamsponsors { margin-top: clamp(40px, 6vw, 64px); }
.brfc-teamsponsors__list { display: flex; flex-wrap: wrap; gap: 16px; margin: 0; padding: 0; list-style: none; }
.brfc-teamsponsors__list li > a, .brfc-teamsponsors__list li > img, .brfc-teamsponsors__list li > strong {
	display: grid; place-items: center; width: 200px; height: 104px; padding: 16px 22px;
	border: 1px solid var(--line); border-radius: var(--r); background: #fff; color: var(--ink); text-align: center; text-decoration: none;
}
.brfc-teamsponsors__list img { max-width: 100%; max-height: 100%; object-fit: contain; }
.brfc-teamsponsors__ask {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px;
	padding: 24px 28px; border-radius: var(--r-lg); background: var(--paper); border: 1px dashed rgba(199, 1, 2, 0.4);
}
.brfc-teamsponsors__ask p { margin: 0; max-width: 60ch; color: var(--muted); }
.brfc-teamsponsors__ask strong { display: block; margin-bottom: 2px; font-family: var(--font-display); font-size: 22px; text-transform: uppercase; color: var(--ink); }

.brfc-agegroups { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); margin-top: 24px; }
.brfc-agegroup { display: flex; flex-direction: column; gap: 6px; padding: 24px; border-radius: var(--r-lg); background: var(--paper); border: 1px solid var(--line); scroll-margin-top: calc(var(--header-h) + 24px); }
.brfc-agegroup h3 { margin: 0; font-family: var(--font-display); font-size: 26px; font-weight: 800; text-transform: uppercase; color: var(--ink); }
.brfc-agegroup p { margin: 0 0 8px; font-size: 14px; color: var(--muted); }
.brfc-agegroup .brfc-link { margin-top: auto; }
.brfc-team { scroll-margin-top: calc(var(--header-h) + 24px); }

/* ------------------------------------------------------------- content tidy */
/* The band carries the page's main title, so any further h1 the old builder left in the content reads as a section heading. */
.brfc-layout h1, .brfc-prose h1 { font-size: clamp(28px, 3.2vw, 40px); line-height: 1.05; }
