/* BCTFC shared interface system v1.0.1 — approved officials-card treatment.
 * Owns reusable surfaces, actions, form controls and interaction states.
 * #main scopes public rules above legacy article selectors; WP rules are opt-in.
 */
:root {
  --ui-red: #c0181e;
  --ui-red-dark: #8e1115;
  --ui-tint: #fbebed;
  --ui-ink: #252b35;
  --ui-muted: #626874;
  --ui-surface: #f7f8fa;
  --ui-border: #e5e7eb;
  --ui-radius: 18px;
  --ui-control-radius: 11px;
  --ui-shadow: 0 3px 14px rgba(24,32,44,.045);
  --ui-shadow-hover: 0 6px 20px rgba(24,32,44,.08);
  --ui-motion: 160ms ease;
}

/* Reusable buttons. Variants preserve their existing meaning and destinations. */
.bctfc-btn,
#main :is(.bctfc-btn, .fixture-cta, .home-junior-cta, .bctfc-doc-link, .bctfc-doclib-open, .bctfc-doclib-btn, .team-table-link,
  .bctfc-reg-submit, .bctfc-reg-secondary, .bctfc-qp-btn, .bctfc-qp-publish-btn, .bctfc-qp-btn-small,
  .bctfc-public-registration-link) {
  display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
  box-sizing: border-box; min-height: 44px; max-width: 100%; padding: .8rem 1.2rem;
  border: 1px solid transparent; border-radius: var(--ui-control-radius);
  background: var(--ui-red); color: #fff !important; text-decoration: none; font-family: inherit;
  font-size: 14px; font-weight: 700; line-height: 1.5; letter-spacing: .01em;
  text-transform: none; white-space: normal; overflow-wrap: anywhere;
  transition: background-color var(--ui-motion), border-color var(--ui-motion), box-shadow var(--ui-motion);
}
.bctfc-btn:is(:hover, :focus-visible, :active),
#main :is(.bctfc-btn, .fixture-cta, .home-junior-cta, .bctfc-doc-link, .bctfc-doclib-open, .bctfc-doclib-btn, .team-table-link,
  .bctfc-reg-submit, .bctfc-reg-secondary, .bctfc-qp-btn, .bctfc-qp-publish-btn, .bctfc-qp-btn-small,
  .bctfc-public-registration-link):is(:hover, :focus-visible, :active) {
  background: var(--ui-red-dark); color: #fff !important; border-color: transparent; text-decoration: none;
  transform: none; box-shadow: none;
}
#main :is(.bctfc-doc-link, .bctfc-doclib-open, .bctfc-reg-secondary, .bctfc-btn-dark) { background: var(--ui-ink); }
.bctfc-btn-outline,
#main .bctfc-btn-outline { background: transparent; color: var(--ui-red) !important; border-color: var(--ui-red); }
.bctfc-btn-outline:is(:hover, :focus-visible, :active),
#main .bctfc-btn-outline:is(:hover, :focus-visible, :active) { background: var(--ui-red); color: #fff !important; border-color: var(--ui-red); }
#main .bctfc-btn-small { padding: .55rem .9rem; font-size: 13px; }
#main .bctfc-btn-large { padding: 1rem 1.6rem; font-size: 16px; }
#main .bctfc-btn-block { display: flex; width: 100%; }
.bctfc-btn-wrap { margin: 1rem 0; }
.bctfc-btn-wrap-center { text-align: center; }
.bctfc-btn-wrap-right { text-align: right; }
#main :is(.bctfc-qp-publish-btn, .bctfc-reg-submit):disabled { background: #626874; color: #fff; cursor: not-allowed; box-shadow: none; }

/* Contact cards: database content stays untouched; decorative icons are CSS masks. */
#main :is(.info-card, .contact-info-card) {
  min-width: 0; padding: clamp(1.1rem,3vw,1.5rem); margin: 0 0 1rem;
  background: #fff; border: 1px solid var(--ui-border); border-radius: var(--ui-radius); box-shadow: var(--ui-shadow);
}
#main :is(.info-card, .contact-info-card) p { font-size: 14px; line-height: 1.65; color: var(--ui-muted); margin: 0 0 .65rem; }
#main :is(.info-card, .contact-info-card) strong { color: var(--ui-ink); font-weight: 700; text-transform: none; letter-spacing: 0; }
#main :is(.info-card, .contact-info-card) a:is([href^="mailto:"], [href^="tel:"]) {
  display: flex; align-items: center; gap: .65rem; min-height: 44px; max-width: 100%;
  padding: .65rem .75rem; margin-top: .5rem; border: 1px solid var(--ui-border);
  border-radius: var(--ui-control-radius); background: var(--ui-surface); color: #394351;
  font-size: 13px; font-weight: 500; line-height: 1.5; text-decoration: none; overflow-wrap: anywhere;
  transition: background-color var(--ui-motion), border-color var(--ui-motion);
}
#main :is(.info-card, .contact-info-card) a:is([href^="mailto:"], [href^="tel:"]):is(:hover, :focus-visible) {
  background: var(--ui-tint); border-color: #eac9cd; color: var(--ui-red-dark);
}
#main :is(.info-card, .contact-info-card) a:is([href^="mailto:"], [href^="tel:"])::before {
  content: ""; flex: 0 0 18px; width: 18px; height: 18px; background: var(--ui-red-dark);
  mask: var(--ui-contact-icon) center/contain no-repeat;
}
#main :is(.info-card, .contact-info-card) a[href^="mailto:"] { --ui-contact-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='3'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E"); }
#main :is(.info-card, .contact-info-card) a[href^="tel:"] { --ui-contact-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6 19.8 19.8 0 0 1-3.1-8.7A2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7 12.8 12.8 0 0 0 .7 2.8 2 2 0 0 1-.5 2.1L8 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.5 12.8 12.8 0 0 0 2.8.7 2 2 0 0 1 1.8 2.1Z'/%3E%3C/svg%3E"); }
#main :is(.page-content-contact-us, .page-content-contact-the-club) .entry-content:has(.contact-info-card) {
  display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,320px),1fr)); gap: 1.25rem; align-items: start;
}
#main :is(.page-content-contact-us, .page-content-contact-the-club) .entry-content:has(.contact-info-card) > :not(.contact-info-card) { grid-column: 1/-1; }

/* Card families retain their existing grids and image/score layouts. */
#main :is(.home-tile, .news-archive-item, .sponsor-card, .bctfc-policy-card, .bctfc-dbs-card, .bctfc-reg-card, .match-centre-picker__team) {
  border: 1px solid var(--ui-border); border-radius: var(--ui-radius); background: #fff; box-shadow: var(--ui-shadow);
}
#main :is(.home-tile, .sponsor-card, .bctfc-policy-card, .match-centre-picker__team):is(:hover, :focus-visible),
#main .news-archive-item:focus-within { border-color: #dcb9bd; box-shadow: var(--ui-shadow-hover); transform: none; }
#main .match-centre-picker__team.is-active { border-color: var(--ui-red); background: #fff8f8; box-shadow: inset 0 0 0 1px var(--ui-red); }
#main .home-tile-icon { background: var(--ui-tint); color: var(--ui-red-dark); animation: none; will-change: auto; }
#main .home-tile:hover .home-tile-icon { transform: none; box-shadow: none; background: var(--ui-tint); color: var(--ui-red-dark); }
#main :is(.home-tile h3, .news-archive-body h2, .sponsor-card-name, .match-centre-picker__team-name) { font-weight: 700; color: var(--ui-ink); }
#main :is(.news-archive-body, .bctfc-sponsor-card-body) { padding: 1.4rem; }
#main :is(.match-centre-picker__team-state, .match-centre-picker__next-label, .news-archive-meta) { text-transform: none; letter-spacing: .02em; font-size: 12px; font-weight: 600; }
#main :is(.home-junior-age, .home-junior-btn) { border-radius: var(--ui-control-radius); min-height: 44px; }
#main .home-junior-btn:hover { transform: none; }

/* Quiet headings, readable prose, and compact data displays. */
#main .page-content .entry-content { max-width: none; width: 100%; }
#main .entry-content > :is(p,h2,h3,h4,ul,ol,blockquote) { max-width: 75ch; margin-left: auto; margin-right: auto; }
#main :is(.team-data-head, .bctfc-admin-header) { border-bottom: 1px solid var(--ui-border); }
#main :is(.team-data-head h2, .bctfc-section-title, .bctfc-doc-main strong, .bctfc-dbs-card strong, .bctfc-cal-info strong) { font-weight: 700; }
#main :is(.bctfc-section-count, .bctfc-dbs-card-label, .bctfc-cal-group-label, .bctfc-date-label, .bctfc-doclib-tag) {
  font-size: 12px; font-weight: 600; text-transform: none; letter-spacing: .02em; color: var(--ui-muted);
}
#main :is(.bctfc-doc-notes, .bctfc-empty-state, .bctfc-doclib-sub, .bctfc-qp-submit-help, .bctfc-qp-meta-label) { color: var(--ui-muted); }
#main :is(.bctfc-cal-date-block, .bctfc-doclib-type) { background: var(--ui-tint); color: var(--ui-red-dark); }
#main .bctfc-cal-month { color: var(--ui-red-dark); }
#main .bctfc-dbs-card:hover { border-color: var(--ui-border); transform: none; }
#main .bctfc-section-toggle { min-height: 60px; }
#main .bctfc-section-icon { display: flex; align-items: center; color: var(--ui-red-dark); }
.bctfc-ui-icon { width: 20px; height: 20px; flex-shrink: 0; vertical-align: middle; }
#main .bctfc-toggle-chevron { font-size: 0; width: 12px; height: 12px; }
#main .bctfc-toggle-chevron::after { content: ""; display: block; width: 7px; height: 7px; border: solid var(--ui-muted); border-width: 0 1.8px 1.8px 0; transform: rotate(45deg); }
#main [aria-expanded="true"] .bctfc-toggle-chevron::after { transform: rotate(225deg); }
#main :is(.bctfc-qa-label, .bctfc-qp-title-bar h2) { font-family: inherit; font-weight: 700; text-transform: none; letter-spacing: 0; }
#main .bctfc-qp-crest { filter: none; }
#main .bctfc-qp-title-bar::after { height: 2px; bottom: 0; }
#main :is(.bctfc-qp-eyebrow, .bctfc-qp-meta-label) { letter-spacing: .03em; text-transform: none; }
#main .bctfc-readonly-pill { background: var(--ui-surface); color: var(--ui-muted); border-radius: 99px; letter-spacing: .02em; }

/* Existing labels, controls, required/optional consent and error semantics stay intact. */
#main :is(.bctfc-reg, .bctfc-qp, .wpcf7, .bctfc-doclib-search) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="hidden"]):not([type="file"]), select, textarea) {
  border-radius: var(--ui-control-radius); border-color: #aeb4be; min-height: 44px;
  transition: border-color var(--ui-motion), box-shadow var(--ui-motion);
}
#main :is(.bctfc-reg, .bctfc-qp, .wpcf7) :is(label, legend) { font-weight: 600; }
#main .bctfc-reg-form fieldset { border-radius: var(--ui-radius); border-color: var(--ui-border); }
#main :is(.bctfc-reg-intro, .bctfc-reg-notice, .bctfc-reg-match, .bctfc-reg-choice, .bctfc-reg-privacy) { border-radius: var(--ui-control-radius); }
#main .bctfc-reg-intro { border-left-width: 3px; }
#main .bctfc-reg-kicker { color: #ff8991; }
#main .bctfc-reg-privacy { border-left-width: 3px; }
#main :is(.bctfc-reg-notice, .bctfc-reg-match) { border-left-width: 4px; }

/* Keyboard indicators survive legacy inline styles that suppress outlines. */
#main :is(a,button,input,select,textarea,summary,[role="link"],[role="button"]):focus-visible,
.site-header :is(a,button):focus-visible, .site-footer a:focus-visible,
.bctfc-admin-ui #wpbody-content :is(a,button,input,select,textarea,summary):focus-visible {
  outline: 2px solid var(--ui-red-dark) !important; outline-offset: 3px !important;
}
.site-header :is(a,button):focus-visible, .site-footer a:focus-visible { outline-color: #fff !important; }
#main :is(.bctfc-reg-intro, .home-junior-card, .bctfc-qp-title-bar) :is(a,button):focus-visible { outline-color: #fff !important; }
.site-header-cta { border-radius: var(--ui-control-radius); min-height: 44px; }
.site-footer-social a { width: 44px; height: 44px; }
#main :is(.page-hero .breadcrumb, .home-hero-byline-label, .home-junior-tag),
.site-footer h4 { color: #ff8991; letter-spacing: .08em; }
#main .bctfc-section-toggle:focus-visible { outline-offset: -4px !important; border-radius: var(--ui-radius); }
#main .bctfc-sponsor-item:focus-visible { outline-offset: -2px !important; }
.login :is(a,button,input):focus-visible { outline: 2px solid #ff8991 !important; outline-offset: 3px; }
.bctfc-btn-dark { background: var(--ui-ink); }
.bctfc-btn-small { padding: .55rem .9rem; font-size: 13px; }
.bctfc-btn-large { padding: 1rem 1.6rem; font-size: 16px; }
.bctfc-btn-block { display: flex; width: 100%; }

/* Only our custom WP screens opt in; preserve tables, native editor and permissions. */
.bctfc-admin-ui #wpbody-content > .wrap { max-width: 1440px; }
.bctfc-admin-ui #wpbody-content .nav-tab-wrapper { display: flex; flex-wrap: wrap; gap: 6px; padding: 8px 0 12px; border-bottom: 1px solid var(--ui-border); }
.bctfc-admin-ui #wpbody-content .nav-tab { margin: 0; padding: 9px 14px; border: 1px solid transparent; border-radius: var(--ui-control-radius); background: #fff; color: #394351; }
.bctfc-admin-ui #wpbody-content .nav-tab-active { background: var(--ui-tint); color: var(--ui-red-dark); border-color: #eac9cd; }
.bctfc-admin-ui #wpbody-content .button { border-radius: var(--ui-control-radius); min-height: 36px; }
.bctfc-admin-ui #wpbody-content .button-primary { background: var(--ui-red); border-color: var(--ui-red); color: #fff; }
.bctfc-admin-ui #wpbody-content .button-primary:hover { background: var(--ui-red-dark); border-color: var(--ui-red-dark); }
.bctfc-admin-ui #wpbody-content .button-primary:disabled { background: #626874; border-color: #626874; color: #fff; }
.bctfc-admin-ui .bctfc-admin-tool-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,260px),1fr)); gap: 16px; max-width: 1200px; margin-top: 20px; }
.bctfc-admin-ui .bctfc-admin-tool-card { display: block; padding: 22px; border: 1px solid var(--ui-border); border-radius: var(--ui-radius); background: #fff; color: var(--ui-ink); text-decoration: none; box-shadow: var(--ui-shadow); }
.bctfc-admin-ui .bctfc-admin-tool-card:hover { border-color: #dcb9bd; box-shadow: var(--ui-shadow-hover); }
.bctfc-admin-ui #wpbody-content :is(.widefat, .postbox) { border-color: var(--ui-border); box-shadow: var(--ui-shadow); }
.bctfc-admin-ui #wpbody-content :is(h1,h2,h3) { color: var(--ui-ink); }

@media (max-width: 600px) {
  #main .entry-content > :is(ul,ol) { padding-left: 1.2rem; }
  #main :is(.bctfc-doc-aside, .bctfc-doclib-actions) { gap: .6rem; }
  #main .bctfc-doclib-title { overflow-wrap: anywhere; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
