/* Reclub Sync: games and tournaments. Colours and fonts match the site design tokens. */
:root {
	--rc-g900: #173c2f; --rc-g800: #174a35; --rc-g600: #477b59; --rc-g500: #236a44; --rc-g200: #b6d6c1; --rc-g50: #f4faf3;
	--rc-yellow: #eac641; --rc-cream: #faf8ef; --rc-sage: #e9eee3; --rc-paper: #fcfdf9; --rc-line: #dfe4d9;
	--rc-muted: #5d7063; --rc-soft: #668073; --rc-ok: #24804a; --rc-warn: #a8641a; --rc-full: #b4532a;
	--rc-display: 'Outfit', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--rc-body: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

body.rc-page { background: var(--rc-cream); }
body.rc-page .site-main, body.rc-page .page-content { max-width: none; padding: 0; margin: 0; }

.rc-app { font-family: var(--rc-body); color: var(--rc-g900); line-height: 1.5; box-sizing: border-box; }
.rc-app *, .rc-app *::before, .rc-app *::after { box-sizing: border-box; }
.rc-app [hidden] { display: none !important; }
.rc-app :where(h1, h2, h3, h4, p, dl, dd, figure) { margin: 0; }
.rc-app :where(a) { color: inherit; }
.rc-app img { display: block; max-width: 100%; height: auto; }
.rc-icon { width: 1em; height: 1em; flex: none; vertical-align: -0.125em; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Full pages sit in the same 1154px content column as the header, footer and Elementor sections. */
.rc-find, .rc-single, .rc-tournaments, .rc-featured { max-width: 1210px; margin: 0 auto; padding: 56px 28px; }
.rc-find { padding-bottom: 96px; }

/* ---- type ---- */
.rc-eyebrow { font-size: 11px; font-weight: 800; letter-spacing: .22em; text-transform: uppercase; color: var(--rc-g600); }
.rc-h1 { font-family: var(--rc-display); font-weight: 800; font-size: clamp(40px, 6vw, 62px); line-height: 1.02; letter-spacing: -.04em; margin-top: 8px; }
.rc-h1--sm { font-size: clamp(34px, 4.6vw, 52px); font-weight: 700; letter-spacing: -.035em; }
.rc-h2 { font-family: var(--rc-display); font-weight: 700; font-size: clamp(26px, 3vw, 36px); line-height: 1.1; letter-spacing: -.03em; }
.rc-h3 { font-family: var(--rc-display); font-weight: 600; font-size: 22px; letter-spacing: -.02em; margin: 36px 0 10px; }
.rc-lede { color: var(--rc-muted); font-size: 16px; max-width: 60ch; }
.rc-prose p { color: var(--rc-muted); font-size: 15.5px; line-height: 1.75; margin-bottom: 12px; max-width: 70ch; overflow-wrap: anywhere; }

/* ---- buttons: one system, matching "Browse tournaments" / "See current games" in the design ---- */
.rc-app .rc-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 20px; border: 1px solid transparent; border-radius: 7px; font: 800 12px/1 var(--rc-body); letter-spacing: .045em; text-transform: uppercase; text-decoration: none; cursor: pointer; box-sizing: border-box; transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease; }
.rc-app .rc-btn .rc-icon { width: 15px; height: 15px; }
.rc-app .rc-btn--dark { background-color: var(--rc-g800); color: #fff; box-shadow: 4px 4px 0 var(--rc-yellow); }
.rc-app .rc-btn--yellow { background-color: var(--rc-yellow); color: var(--rc-g900); box-shadow: 4px 4px 0 var(--rc-g800); }
.rc-app .rc-btn--ghost { background-color: #fff; color: var(--rc-g800); border-color: var(--rc-g800); box-shadow: 3px 3px 0 var(--rc-yellow); }
.rc-app .rc-btn--block { width: 100%; }
.rc-app .rc-btn--dark:hover, .rc-app .rc-btn--dark:focus, .rc-app .rc-btn--dark:active { background-color: var(--rc-g900); color: #fff; transform: translate(-1px, -1px); box-shadow: 5px 5px 0 var(--rc-yellow); }
.rc-app .rc-btn--yellow:hover, .rc-app .rc-btn--yellow:focus, .rc-app .rc-btn--yellow:active { background-color: var(--rc-yellow); color: var(--rc-g900); transform: translate(-1px, -1px); box-shadow: 5px 5px 0 var(--rc-g800); }
.rc-app .rc-btn--ghost:hover, .rc-app .rc-btn--ghost:focus, .rc-app .rc-btn--ghost:active { background-color: #fff; color: var(--rc-g800); border-color: var(--rc-g800); transform: translate(-1px, -1px); box-shadow: 4px 4px 0 var(--rc-yellow); }
/* Compact buttons inside cards and filter bars: same look, smaller offset shadow */
.rc-app .rc-btn--sm { min-height: 0; padding: 12px 14px; font-size: 11px; box-shadow: 3px 3px 0 var(--rc-yellow); }
.rc-app .rc-btn--sm.rc-btn--ghost { box-shadow: 3px 3px 0 var(--rc-yellow); }
.rc-app .rc-card .rc-btn, .rc-app .rc-hcard .rc-btn { min-height: 0; padding: 14px; font-size: 11px; box-shadow: 3px 3px 0 var(--rc-yellow); }
.rc-app .rc-card .rc-btn:hover, .rc-app .rc-hcard .rc-btn:hover { box-shadow: 4px 4px 0 var(--rc-yellow); }
.rc-app .rc-btn--sm:hover { box-shadow: 4px 4px 0 var(--rc-yellow); }
.rc-app .rc-btn:focus-visible, .rc-app .rc-tcard:focus-visible, .rc-app .rc-field select:focus-visible, .rc-app .rc-field input:focus-visible, .rc-app .rc-search input:focus-visible { outline: 3px solid var(--rc-yellow); outline-offset: 2px; }

/* ---- page head ---- */
.rc-pagehead { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px 40px; padding-bottom: 28px; border-bottom: 2px solid var(--rc-yellow); margin-bottom: 28px; }
.rc-pagehead > div { flex: 1 1 520px; max-width: 800px; }
.rc-pagehead > .rc-lede { flex: 0 1 380px; }
.rc-pagehead .rc-lede { max-width: 44ch; }
.rc-pagehead--cta .rc-lede { margin-top: 14px; }
.rc-pagehead--cta > .rc-btn { flex: none; }
.rc-pagehead--cta { border-bottom: 1px solid rgba(23, 74, 53, .18); position: relative; }
.rc-pagehead--cta::after { content: ''; position: absolute; right: 0; bottom: -3px; width: 120px; height: 5px; background: var(--rc-yellow); }

/* ---- form controls ---- */
.rc-app .rc-field { display: grid; gap: 6px; min-width: 0; }
.rc-app .rc-field > span { font-size: 10.5px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--rc-g900); }
.rc-app .rc-field select, .rc-app .rc-field input, .rc-app .rc-search input { width: 100%; min-height: 46px; padding: 10px 14px; border: 1px solid var(--rc-line); border-radius: 7px; background-color: #fff; color: var(--rc-g900); font: 400 15px var(--rc-body); box-shadow: none; }
.rc-app .rc-field select { appearance: none; -webkit-appearance: none; padding-right: 40px; cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6.5L8 10.5L12 6.5' stroke='%23173c2f' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; }
.rc-app .rc-field select:focus, .rc-app .rc-field input:focus, .rc-app .rc-search input:focus { border-color: var(--rc-g600); }
.rc-app .rc-check { display: inline-flex; align-items: center; gap: 8px; min-height: 46px; padding: 0 14px; background: #fff; border: 1px solid var(--rc-line); border-radius: 7px; font-weight: 600; font-size: 14px; cursor: pointer; }
.rc-app .rc-check input { width: 16px; height: 16px; min-height: 0; padding: 0; accent-color: var(--rc-g800); }
.rc-count { font-size: 14px; color: var(--rc-muted); margin-bottom: 14px; }
.rc-count strong { color: var(--rc-g900); }
.rc-near-note, .rc-empty { font-size: 14px; color: var(--rc-muted); margin: 0 0 14px; }
.rc-empty { padding: 28px; text-align: center; background: var(--rc-paper); border: 1px dashed var(--rc-line); border-radius: 12px; }

/* ---- Find a Game filters (dropdowns) ---- */
.rc-filters { background: #f0ead6; border: 1px solid var(--rc-line); border-radius: 16px; padding: 18px 20px; display: grid; gap: 14px; margin-bottom: 22px; }
.rc-filters__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.rc-filters__row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.rc-search { flex: 1 1 260px; }
/* chip rows (built by reclub.js from the dropdowns, which stay as the hidden source of truth) */
.rc-filters.has-chips .rc-filters__grid { display: none; }
.rc-fgroups { display: grid; gap: 14px; }
.rc-frow { display: flex; align-items: flex-start; gap: 14px; min-width: 0; }
.rc-frow__label { flex: none; width: 48px; font: 800 11px/38px var(--rc-body); letter-spacing: .14em; text-transform: uppercase; color: var(--rc-soft); }
.rc-frow__chips { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 8px; min-width: 0; flex: 1 1 auto; }
.rc-frow--scroll .rc-frow__chips { flex-wrap: nowrap; overflow-x: auto; padding: 0 0 6px; scrollbar-width: thin; scrollbar-color: var(--rc-g200) transparent; }
.rc-app .rc-fchip, .rc-app .rc-fmore { display: inline-flex; flex: none; align-items: center; justify-content: center; min-height: 38px; padding: 0 16px; border: 1px solid var(--rc-line); border-radius: 999px; background-color: #fff; color: var(--rc-g900); font: 700 13px/1 var(--rc-body); white-space: nowrap; cursor: pointer; transition: border-color .15s ease, background-color .15s ease, transform .15s ease; }
.rc-app .rc-fmore { background-color: transparent; border-style: dashed; color: var(--rc-g600); }
.rc-app .rc-fchip:hover, .rc-app .rc-fchip:focus-visible, .rc-app .rc-fmore:hover, .rc-app .rc-fmore:focus-visible { background-color: #fff; color: var(--rc-g900); border-color: var(--rc-g800); transform: translateY(-1px); }
.rc-app .rc-fchip.is-active, .rc-app .rc-fchip.is-active:hover, .rc-app .rc-fchip.is-active:focus-visible { background-color: var(--rc-g800); color: #fff; border-color: var(--rc-g800); }
.rc-frow.is-collapsed .rc-fchip--extra { display: none; }
.rc-app .rc-fchip--day { flex-direction: column; gap: 5px; width: 56px; min-height: 58px; padding: 8px 4px; border-radius: 12px; }
.rc-app .rc-fchip--day span { font: 700 12px/1 var(--rc-body); }
.rc-app .rc-fchip--day strong { font: 800 20px/1 var(--rc-display); letter-spacing: -.02em; }
.rc-app .rc-fchip--all { font-size: 13px; }
@media (max-width: 640px) {
	.rc-filters.has-chips { padding: 16px; }
	.rc-frow { flex-direction: column; gap: 6px; }
	.rc-frow__label { width: auto; font-size: 10.5px; line-height: 1; }
	.rc-frow--scroll .rc-frow__chips { width: 100%; margin: 0 -2px; padding: 0 2px 6px; }
}

/* ---- home filter bar ---- */
.rc-filterbar { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) auto; gap: 12px; align-items: end; background: #fff; border: 1px solid var(--rc-line); border-radius: 14px; padding: 16px 18px; margin-bottom: 22px; box-shadow: 0 10px 20px rgba(26, 74, 50, .06); }
.rc-app .rc-filterbar .rc-btn { min-height: 46px; padding: 0 22px; }

/* ---- grids ---- */
.rc-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: stretch; }
.rc-more { margin: 28px 0 0; text-align: center; }
.rc-app .rc-more .rc-btn { min-height: 38px; padding: 0 18px; font-size: 11.5px; box-shadow: 3px 3px 0 var(--rc-g800); }
.rc-app .rc-more .rc-btn:hover { box-shadow: 4px 4px 0 var(--rc-g800); }

/* ---- find page card ---- */
.rc-card { display: flex; flex-direction: column; gap: 10px; padding: 18px; background: #fff; border: 1px solid var(--rc-line); border-radius: 14px; box-shadow: 0 5px 17px rgba(26, 74, 50, .04); height: 100%; }
.rc-card__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.rc-card__time { font-family: var(--rc-display); font-weight: 600; font-size: 26px; letter-spacing: -.03em; }
.rc-card__meta, .rc-card__venue { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; color: var(--rc-soft); }
.rc-card__venue .rc-icon { color: #b88a1c; margin-top: 3px; }
.rc-card__meta .rc-icon { margin-top: 3px; }
.rc-card__title, .rc-hcard__title { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; overflow-wrap: anywhere; }
.rc-card__title { font-family: var(--rc-display); font-weight: 500; font-size: 21px; letter-spacing: -.02em; line-height: 1.2; min-height: 2.4em; }
.rc-badge { padding: 5px 10px; border-radius: 999px; font-size: 10.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; background: var(--rc-sage); color: var(--rc-muted); }
.rc-tag { align-self: flex-start; padding: 4px 9px; border-radius: 5px; background: var(--rc-sage); font-size: 10.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--rc-g800); }
/* colour-coded labels: level (soft fill), game type (solid), tournament state (solid) */
.rc-badge--all { background: #cdf4f0; color: #0f766e; }
.rc-badge--beginner { background: #cff3dc; color: #13803f; }
.rc-badge--intermediate { background: #fff0c2; color: #8a5a00; }
.rc-badge--advanced { background: #ffd9d9; color: #b42318; }
.rc-tag { padding: 5px 13px; border-radius: 999px; color: #fff; background: #db2777; }
.rc-tag.rc-tag--social { background: #16a34a; }
.rc-tag.rc-tag--dupr { background: #2563eb; }
.rc-tag.rc-tag--training { background: #ea580c; }
.rc-pill--upcoming { background: #16a34a; color: #fff; }
.rc-pill--past { background: #64748b; color: #fff; }
.rc-bar { height: 5px; background: #e8e2d2; border-radius: 99px; overflow: hidden; margin-top: 2px; }
.rc-bar span { display: block; height: 100%; background: var(--rc-g600); border-radius: 99px; }
.rc-card__foot { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; font-size: 13px; color: var(--rc-muted); margin-top: auto; }
.rc-spots strong { color: var(--rc-g900); }
.rc-price { font-family: var(--rc-display); font-weight: 600; font-size: 22px; letter-spacing: -.03em; color: var(--rc-g900); white-space: nowrap; }
.rc-price--lg { font-size: 27px; font-weight: 500; letter-spacing: -.04em; }
.rc-card__wait { font-size: 12px; color: var(--rc-soft); }
.rc-card .rc-btn { margin: 4px 3px 3px 0; }

/* ---- home card ---- */
.rc-hcard { display: flex; flex-direction: column; gap: 14px; padding: 18px; background: var(--rc-paper); border: 1px solid var(--rc-line); border-radius: 12px; box-shadow: 0 5px 17px rgba(26, 74, 50, .04); height: 100%; }
.rc-hcard__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.rc-status { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; font-weight: 700; color: var(--rc-ok); }
.rc-status i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.rc-status--warn { color: var(--rc-warn); }
.rc-status--full { color: var(--rc-full); }
.rc-status--open { color: var(--rc-soft); }
.rc-hcard__when { display: flex; gap: 12px; align-items: center; }
.rc-datebox { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 8px; background: var(--rc-sage); text-align: center; line-height: 1; flex: none; }
.rc-datebox strong { font-family: var(--rc-display); font-size: 22px; font-weight: 700; }
.rc-datebox span { font-size: 10px; font-weight: 800; letter-spacing: .1em; color: var(--rc-soft); }
.rc-hcard__when small { display: block; font-size: 12px; color: var(--rc-soft); }
.rc-hcard__when b { font-size: 15px; font-weight: 600; }
.rc-hcard__title { font-family: var(--rc-display); font-weight: 700; font-size: 25px; letter-spacing: -.035em; line-height: 1.1; min-height: 2.2em; }
.rc-hcard__foot { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; border-top: 1px solid var(--rc-line); padding-top: 12px; margin-top: auto; }
.rc-hcard__foot b { display: block; font-size: 13px; }
.rc-hcard__foot small { font-size: 12px; color: var(--rc-soft); }

/* ---- bottom call to action on Find a Game ---- */
.rc-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; margin-top: 70px; }
.rc-cta .rc-h2 { margin: 6px 0 8px; }
.rc-cta p:last-child { color: var(--rc-muted); }

/* ---- single pages ---- */
.rc-single { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 48px; align-items: start; }
.rc-back { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 26px; font-weight: 700; font-size: 13px; color: var(--rc-g600); text-decoration: none; }
.rc-back:hover { text-decoration: underline; }
.rc-single .rc-lede { margin: 14px 0 24px; }
.rc-hero { border-radius: 4px; overflow: hidden; background: var(--rc-sage); }
.rc-hero img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.rc-panel-wrap { position: sticky; top: 24px; }
.rc-panel__title { font-family: var(--rc-display); font-weight: 600; font-size: 22px; letter-spacing: -.02em; text-align: center; }
.rc-panel__sub { text-align: center; color: var(--rc-soft); font-size: 13px; margin: 4px 0 18px; }
.rc-panel { display: grid; gap: 12px; background: #fff; border: 1px solid var(--rc-line); border-radius: 24px; padding: 14px; box-shadow: 0 20px 40px rgba(26, 74, 50, .1); }
.rc-panel__head { position: relative; overflow: hidden; padding: 20px; border-radius: 14px; background: var(--rc-g800); color: #fff; }
.rc-panel__head::after { content: ''; position: absolute; right: -30px; top: -40px; width: 150px; height: 150px; border: 2px solid rgba(255, 255, 255, .12); border-radius: 50%; }
.rc-brand { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 800; letter-spacing: .16em; }
.rc-brand i { width: 22px; height: 22px; border: 2px solid rgba(255, 255, 255, .7); border-radius: 50%; }
.rc-panel__eyebrow { margin-top: 16px; font-size: 10.5px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; opacity: .85; }
.rc-panel__head h2 { font-family: var(--rc-display); font-size: 24px; font-weight: 700; letter-spacing: -.03em; margin: 6px 0; }
.rc-panel__head p:last-child { font-size: 13px; opacity: .85; max-width: 32ch; }
.rc-block { border: 1px solid var(--rc-line); border-radius: 16px; padding: 14px 16px; }
.rc-block--green { background: var(--rc-g50); border-color: #cfe6d3; }
.rc-block__head { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 14px; }
.rc-rows { margin: 0; padding: 4px 16px 6px; }
.rc-block .rc-rows { padding: 4px 0 0; }
.rc-panel > .rc-rows { border: 1px solid var(--rc-line); border-radius: 16px; }
.rc-row { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; border-bottom: 1px solid #e7ebe5; }
.rc-row:last-child { border-bottom: 0; }
.rc-row dt { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--rc-soft); padding-top: 2px; }
.rc-row dd { font-size: 13.5px; font-weight: 700; text-align: right; overflow-wrap: anywhere; }
.rc-row small { display: block; font-size: 12px; font-weight: 400; color: var(--rc-soft); }
.rc-prizes { border: 1px solid var(--rc-line); border-radius: 16px; padding: 14px; display: grid; gap: 10px; }
.rc-prizes__head { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 14px; }
.rc-prizes__row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.rc-prize { display: grid; gap: 2px; padding: 12px 14px; border: 1px solid var(--rc-line); border-radius: 10px; }
.rc-prize span { font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--rc-soft); }
.rc-prize strong { font-family: var(--rc-display); font-size: 24px; letter-spacing: -.03em; }
.rc-prize small { font-size: 12px; color: var(--rc-soft); }
.rc-prize--first { background: var(--rc-g800); border-color: var(--rc-g800); color: #fff; }
.rc-prize--first span, .rc-prize--first small { color: rgba(255, 255, 255, .8); }
.rc-prize--first strong { font-size: 32px; }
.rc-dupr { display: flex; align-items: center; gap: 12px; margin-top: 10px; }
.rc-dupr strong { padding: 10px 12px; background: #fff; border-radius: 8px; font-family: var(--rc-display); font-size: 22px; }
.rc-dupr span { font-size: 13px; color: var(--rc-muted); }
.rc-panel__fine { text-align: center; font-size: 12px; color: var(--rc-soft); }
.rc-featured { padding-top: 0; }
.rc-featured .rc-h2 { margin-bottom: 20px; }

/* ---- tournaments ---- */
.rc-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 6px; }
.rc-app .rc-chip { min-height: 38px; padding: 7px 16px; border: 1px solid var(--rc-g800); border-radius: 7px; background-color: #fff; color: var(--rc-g800); font: 700 13px/1 var(--rc-body); cursor: pointer; box-shadow: 3px 3px 0 var(--rc-yellow); transition: transform .15s ease, box-shadow .15s ease; }
.rc-app .rc-chip:hover, .rc-app .rc-chip:focus { background-color: #fff; color: var(--rc-g800); border-color: var(--rc-g800); transform: translate(-1px, -1px); box-shadow: 4px 4px 0 var(--rc-yellow); }
.rc-app .rc-chip.is-active, .rc-app .rc-chip.is-active:hover, .rc-app .rc-chip.is-active:focus { background-color: var(--rc-g800); color: #fff; border-color: var(--rc-g800); box-shadow: 3px 3px 0 var(--rc-yellow); }
.rc-tsection { margin-top: 30px; }
.rc-tsection .rc-h2 { margin-bottom: 18px; }
.rc-tgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.rc-tcard { display: flex; flex-direction: column; background: #fff; border: 1px solid rgba(31, 77, 54, .22); text-decoration: none; color: inherit; transition: transform .15s ease, box-shadow .15s ease; }
.rc-tcard, .rc-tcard:hover, .rc-tcard:focus, .rc-tcard * { text-decoration: none !important; }
.rc-tcard__title { color: var(--rc-g800); }
.rc-card__title.rc-t-long { font-size: 18px; } .rc-card__title.rc-t-xlong { font-size: 16px; }
.rc-hcard__title.rc-t-long { font-size: 21px; } .rc-hcard__title.rc-t-xlong { font-size: 18px; }
.rc-tcard__title.rc-t-long { font-size: 17px; } .rc-tcard__title.rc-t-xlong { font-size: 15px; }
.rc-h1--sm.rc-t-long { font-size: clamp(28px, 3.8vw, 42px); } .rc-h1--sm.rc-t-xlong { font-size: clamp(24px, 3.2vw, 34px); }
.rc-tcard .rc-tcard__date, .rc-tcard .rc-tcard__venue { color: var(--rc-soft); }
.rc-tcard:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(26, 74, 50, .12); }
.rc-tcard__img { position: relative; display: block; height: 205px; background: #f1ead9; overflow: hidden; }
.rc-tcard__img img { width: 100%; height: 100%; object-fit: cover; }
.rc-pill { position: absolute; left: 10px; top: 10px; padding: 5px 10px; border-radius: 999px; font-size: 10px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.rc-tcard__body { display: grid; gap: 8px; padding: 15px 15px 19px; }
.rc-tcard__date, .rc-tcard__venue { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--rc-soft); }
.rc-tcard__title { font-family: var(--rc-display); font-weight: 500; font-size: 19px; letter-spacing: -.02em; line-height: 1.2; }

/* ---- branded header panel (game and tournament pages) and tournament card without a photo ---- */
/* A calm information strip, deliberately unlike the buttons: soft sage card, thin border, no offset shadow. */
.rc-banner { display: flex; align-items: center; gap: 20px; margin: 22px 0 10px; padding: 20px 24px; border: 1px solid var(--rc-line); border-radius: 14px; background: #f0f1e6; color: var(--rc-g900); }
.rc-banner__text { min-width: 0; flex: 1 1 auto; }
.rc-banner p { margin: 0; }
.rc-banner__when { font: 800 11px/1.4 var(--rc-body); letter-spacing: .18em; text-transform: uppercase; color: var(--rc-g600); }
.rc-banner__venue { display: flex; align-items: center; gap: 8px; margin-top: 5px !important; font: 600 clamp(19px, 2.4vw, 25px)/1.25 var(--rc-display); letter-spacing: -.02em; color: var(--rc-g900); }
.rc-banner__venue .rc-icon { flex: none; width: 20px; height: 20px; color: var(--rc-g600); }
.rc-banner__area { margin-top: 3px !important; color: var(--rc-muted); font-size: 14px; }
.rc-banner__status { flex: none; display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border: 1px solid var(--rc-line); border-radius: 999px; background: #fff; color: var(--rc-g800); font: 800 11px/1 var(--rc-body); letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.rc-banner__status::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: #2f9d5b; }
.rc-banner__status.is-off::before { background: #9aa39d; }
.rc-app .rc-datebox--lg { flex: none; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; width: 80px; height: auto; padding: 14px 8px 12px; border-radius: 12px; background: var(--rc-g800); color: #fff; text-align: center; line-height: 1; }
.rc-app .rc-datebox--lg strong { font: 800 34px/1 var(--rc-display); letter-spacing: -.03em; color: #fff; }
.rc-app .rc-datebox--lg span { margin: 0; font: 800 11px/1 var(--rc-body); letter-spacing: .16em; color: var(--rc-yellow); }
.rc-tcard__img--brand { display: flex; align-items: center; justify-content: center; background: #f0f1e6; }
.rc-app .rc-tcard__img--brand .rc-datebox--lg { width: 104px; padding: 18px 10px 14px; }
.rc-app .rc-tcard__img--brand .rc-datebox--lg strong { font-size: 44px; }
.rc-tcard__trophy { position: absolute; right: 16px; bottom: 14px; color: var(--rc-g600); }
.rc-tcard__trophy .rc-icon { width: 28px; height: 28px; }
@media (max-width: 640px) { .rc-banner { flex-wrap: wrap; padding: 18px; gap: 14px; } .rc-banner__text { flex-basis: calc(100% - 100px); } .rc-banner__status { order: 3; } }

/* ---- venues ---- */
.rc-venues { max-width: 1210px; margin: 0 auto; padding: 56px 28px 72px; box-sizing: border-box; }
.rc-vtools { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; margin-bottom: 26px; }
.rc-vtools .rc-search { flex: 1 1 320px; max-width: 460px; }
.rc-vtools .rc-count { margin: 0; }
.rc-vcard { gap: 8px; }
.rc-vcard .rc-card__title { min-height: 0; }
.rc-vcard__area { margin: 0; }
.rc-vcard__address { margin: 0; color: var(--rc-muted); font-size: 14px; line-height: 1.5; }
.rc-vcard__games { margin: 4px 0 0; color: var(--rc-muted); font-size: 14px; }
.rc-vcard__games.has-games { color: var(--rc-g800); }
.rc-vcard__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; padding-top: 12px; }
.rc-vcard__actions .rc-btn { margin: 4px 3px 3px 0; }
@media (max-width: 640px) { .rc-venues { padding: 36px 16px 56px; } }

/* ---- gallery ---- */
.rc-app .rc-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.rc-app .rc-gtile { position: relative; display: block; overflow: hidden; border-radius: 10px; background: #e9ece3; }
.rc-app .rc-gtile img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform .5s ease; }
.rc-app .rc-gtile:hover img, .rc-app .rc-gtile:focus-visible img { transform: scale(1.04); }
.rc-app .rc-gtile:focus-visible { outline: 3px solid var(--rc-yellow); outline-offset: 2px; }
.rc-app .rc-gtile.is-later { display: none; }
/* Even rows of photos at their own proportions: each tile grows with its width / height (--r); the last row is not stretched. */
.rc-gjust { --rh: 230px; display: flex; flex-wrap: wrap; gap: 10px; }
.rc-app .rc-gjust .rc-gtile { flex: calc(var(--r) * 100) 1 calc(var(--r) * var(--rh)); aspect-ratio: var(--r); min-width: 0; }
.rc-gjust::after { content: ''; flex-grow: 1000000; }
.rc-gjust[data-rows]:not(.is-complete)::after { display: none; }
.rc-gmore { display: flex; justify-content: center; margin: 32px 0 0; }
.rc-gallery { max-width: 1210px; margin: 0 auto; padding: 56px 28px 72px; box-sizing: border-box; }
.rc-lb { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; background: rgba(16, 39, 31, .94); padding: 72px 76px; box-sizing: border-box; }
.rc-lb[hidden] { display: none; }
.rc-lb__stage { position: relative; display: flex; flex-direction: column; align-items: center; max-width: 100%; max-height: 100%; }
.rc-lb__img { display: block; max-width: 100%; max-height: calc(100vh - 170px); max-height: calc(100dvh - 170px); width: auto; height: auto; border-radius: 12px; border: 4px solid #fff; background: #f0f1e6; box-shadow: 8px 8px 0 var(--rc-yellow); opacity: 0; transition: opacity .2s ease; }
.rc-lb__img.is-ready { opacity: 1; }
.rc-lb__count { margin: 22px 0 0; color: #fff; font: 800 12px/1 var(--rc-body); letter-spacing: .14em; text-transform: uppercase; }
.rc-lb .rc-lb__btn { position: absolute; display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; padding: 0; border: 1.5px solid var(--rc-g800); border-radius: 7px; background: #fff; color: var(--rc-g800); box-shadow: 4px 4px 0 var(--rc-yellow); cursor: pointer; transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease; }
.rc-lb .rc-lb__btn:hover, .rc-lb .rc-lb__btn:focus { background: var(--rc-yellow); color: var(--rc-g900); border-color: var(--rc-g800); transform: translate(-1px, -1px); box-shadow: 5px 5px 0 var(--rc-g800); outline: none; }
.rc-lb .rc-lb__btn:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.rc-lb__close { top: 18px; right: 22px; }
.rc-lb__prev { left: 22px; top: 50%; margin-top: -24px; }
.rc-lb__next { right: 22px; top: 50%; margin-top: -24px; }
.rc-lb-open { overflow: hidden; }
@media (max-width: 900px) {
	.rc-gjust { --rh: 150px; gap: 8px; }
	.rc-lb { padding: 64px 14px 96px; }
	.rc-lb__prev { top: auto; bottom: 22px; left: calc(50% - 60px); margin-top: 0; }
	.rc-lb__next { top: auto; bottom: 22px; right: calc(50% - 60px); margin-top: 0; }
	.rc-lb__close { top: 14px; right: 14px; }
	.rc-lb__img { max-height: calc(100dvh - 190px); }
	.rc-gallery { padding: 36px 16px 56px; }
}

/* ---- responsive ---- */
@media (max-width: 1024px) {
	.rc-grid, .rc-tgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rc-single { grid-template-columns: 1fr; gap: 36px; }
	.rc-panel-wrap { position: static; max-width: 520px; width: 100%; margin: 0 auto; }
	.rc-filters__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rc-filterbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rc-filterbar .rc-btn { width: 100%; grid-column: 1 / -1; }
}
@media (max-width: 640px) {
	.rc-find, .rc-single, .rc-tournaments, .rc-featured { padding: 36px 16px; }
	.rc-grid, .rc-tgrid, .rc-filterbar, .rc-filters__grid { grid-template-columns: 1fr; }
	.rc-filters { padding: 14px; border-radius: 14px; }
	.rc-pagehead { flex-direction: column; align-items: flex-start; }
	.rc-pagehead > div, .rc-pagehead > .rc-lede { flex: none; max-width: 100%; }
	.rc-cta { margin-top: 48px; }
	.rc-cta .rc-btn, .rc-pagehead--cta .rc-btn { width: 100%; }
	.rc-prizes__row { grid-template-columns: 1fr; }
	.rc-card__title, .rc-hcard__title { min-height: 0; }
}
/* ---- hover motion on plugin cards (page sections use Elementor's own animations) ---- */
@media (prefers-reduced-motion: no-preference) {
	.rc-card, .rc-hcard { transition: transform .2s ease, box-shadow .2s ease; }
	.rc-card:hover, .rc-hcard:hover { transform: translateY(-3px); box-shadow: 0 14px 28px rgba(26, 74, 50, .1); }
	.rc-tcard:hover .rc-tcard__img img { transform: scale(1.03); }
	.rc-tcard__img img { transition: transform .5s ease; }
}
@media (prefers-reduced-motion: reduce) {
	.rc-btn, .rc-tcard, .rc-gtile img { transition: none; }
	.rc-app .rc-btn:hover, .rc-tcard, .rc-tcard:hover, .rc-tcard:focus, .rc-tcard * { text-decoration: none !important; }
.rc-tcard__title { color: var(--rc-g800); }
.rc-tcard .rc-tcard__date, .rc-tcard .rc-tcard__venue { color: var(--rc-soft); }
.rc-tcard:hover { transform: none; }
}
.rc-app .rc-joinbar { margin: 0; }
.rc-app .rc-joinbar .rc-panel__fine { margin: 10px 0 0; text-align: center; }
