:root {
  --hybro-surface-canvas: #ffffff;
  --hybro-surface-raised: #ffffff;
  --hybro-text-primary: #121714;
  --hybro-text-secondary: #5f6b63;
  --hybro-brand-green: #146c3d;
  --hybro-accent-orange: #a94708;
  --hybro-focus-ring: #0e7cff;
  --hybro-line: rgb(18 23 20 / 16%);
  --hybro-hero-glow: rgb(20 108 61 / 20%);
  --hybro-lime: #61fb11;
}

@media (prefers-color-scheme: dark) {
  :root {
    --hybro-surface-canvas: #0b0b0b;
    --hybro-surface-raised: #121714;
    --hybro-text-primary: #f4f7f3;
    --hybro-text-secondary: #b8c3bb;
    --hybro-brand-green: #54d17b;
    --hybro-accent-orange: #ff9b5e;
    --hybro-focus-ring: #7cc4ff;
    --hybro-line: rgb(244 247 243 / 18%);
    --hybro-hero-glow: rgb(84 209 123 / 26%);
    --hybro-lime: #61fb11;
  }

  body {
    background: var(--hybro-surface-canvas);
    color: var(--hybro-text-primary);
  }
}

body {
  background: var(--hybro-surface-canvas);
  color: var(--hybro-text-primary);
}

:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--hybro-focus-ring);
  outline-offset: 3px;
}

:where(button, input[type='button'], input[type='submit'], input[type='reset']) {
  min-block-size: 44px;
  min-inline-size: 44px;
}

.hybro-surface {
  background: var(--hybro-surface-raised);
  color: var(--hybro-text-primary);
  border: 1px solid color-mix(in srgb, var(--hybro-text-secondary) 25%, transparent);
  border-radius: 0.75rem;
}

.hybro-shell {
  overflow: clip;
}

.hybro-header {
  backdrop-filter: blur(18px);
  background: color-mix(in srgb, var(--hybro-surface-canvas) 86%, transparent);
  border-bottom: 1px solid var(--hybro-line);
  position: sticky;
  top: 0;
  z-index: 20;
}

/* The Site Editor's persisted legacy header remains in the DOM but never visible. */

.hybro-header__inner {
	align-items: center;
	display: flex;
	gap: .75rem;
	justify-content: space-between;
	margin-inline: auto;
	max-inline-size: min(100% - 2rem, 76rem);
	min-inline-size: 0;
	padding-block: .8rem;
}

.hybro-header__brand { flex: 0 0 auto; }

.hybro-header__nav {
	align-items: center;
	display: flex;
	flex: 1 1 auto;
	flex-wrap: wrap;
	gap: clamp(.7rem, 1.8vw, 1.45rem);
	justify-content: center;
	min-inline-size: 0;
}

.hybro-header__nav a,
.hybro-header__cart {
	border-radius: .45rem;
	color: var(--hybro-text-primary);
	font-size: .94rem;
	font-weight: 650;
	line-height: 1.25;
	padding: .45rem .2rem;
	text-decoration: none;
}

.hybro-header__nav a:hover { color: var(--hybro-brand-green); }

.hybro-header__actions {
	align-items: center;
	display: flex;
	flex: 0 0 auto;
	gap: .7rem;
	justify-content: flex-end;
}

.hybro-header__actions .hybro-account-menu { gap: .55rem; }

.hybro-header__cart {
	display: grid;
	place-items: center;
	padding: .4rem;
}

.hybro-header__cart svg { block-size: 1.35rem; inline-size: 1.35rem; }

.hybro-brand-logo {
  display: block;
  flex: 0 1 clamp(6.5rem, 14vw, 10rem);
  inline-size: clamp(6.5rem, 14vw, 10rem);
  line-height: 0;
  max-inline-size: 42vw;
}

.hybro-brand-logo picture,
.hybro-brand-logo img {
  block-size: auto;
  display: block;
  inline-size: 100%;
}

.hybro-footer .hybro-brand-logo {
  inline-size: clamp(7rem, 16vw, 10.5rem);
  margin-block-end: 1rem;
}

.hybro-footer__inner {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr);
	margin-inline: auto;
	max-inline-size: min(100% - 2rem, 76rem);
	padding-block: 2.25rem;
}

.hybro-footer__inner p { margin-block: 1rem 0; }

.hybro-event-hero-sponsors {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: .85rem;
	margin-block: 1.25rem;
}

.hybro-event-hero-sponsor {
	align-items: center;
	background: color-mix(in srgb, var(--hybro-surface-raised) 92%, transparent);
	border: 1px solid var(--hybro-line);
	border-radius: .75rem;
	display: inline-flex;
	min-block-size: 4.75rem;
	padding: .65rem 1rem;
}

.hybro-event-hero-sponsor img { block-size: auto; max-block-size: 4rem; max-inline-size: min(10rem, 42vw); }

.hybro-account-menu {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: .8rem;
	justify-content: flex-end;
	min-inline-size: 0;
}

.hybro-account-menu a {
	color: var(--hybro-text-primary);
	font-size: 0.875rem;
	font-weight: 700;
	text-decoration: none;
}

.hybro-account-menu a:hover {
	color: var(--hybro-brand-green);
}

.hybro-hero {
  isolation: isolate;
  min-block-size: min(760px, calc(100svh - 74px));
  padding-block: clamp(4rem, 11vw, 9rem);
  position: relative;
}

.hybro-hero::before,
.hybro-hero::after {
  border-radius: 999px;
  content: "";
  filter: blur(4px);
  pointer-events: none;
  position: absolute;
  z-index: -1;
}

.hybro-hero::before {
  background: radial-gradient(circle, var(--hybro-hero-glow), transparent 68%);
  block-size: min(62vw, 760px);
  inline-size: min(62vw, 760px);
  inset: -12% -15% auto auto;
}

.hybro-hero::after {
  background: repeating-linear-gradient(135deg, transparent 0 22px, var(--hybro-line) 23px 24px);
  block-size: 56%;
  inline-size: min(60vw, 680px);
  inset: auto -10% 1rem auto;
  opacity: 0.65;
  transform: rotate(-12deg);
}

.hybro-kicker,
.hybro-eyebrow {
  color: var(--hybro-brand-green);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.hybro-hero-title {
  font-size: clamp(3.7rem, 11vw, 9.5rem) !important;
  letter-spacing: -0.09em;
  margin-block: 0 !important;
  max-inline-size: 9ch;
  text-wrap: balance;
}

.hybro-hero-copy {
  color: var(--hybro-text-secondary);
  font-size: clamp(1.08rem, 2vw, 1.35rem);
  max-inline-size: 43rem;
}

.hybro-button-row .wp-element-button,
.hybro-button-row .wp-block-button__link {
  border-radius: 999px;
  min-block-size: 48px;
}

.hybro-button-row .is-style-outline .wp-block-button__link {
  border-color: var(--hybro-text-primary);
  color: var(--hybro-text-primary);
}

.hybro-metric-grid {
  border-block: 1px solid var(--hybro-line);
  gap: 0 !important;
  margin-block-start: clamp(2.5rem, 7vw, 5rem) !important;
}

.hybro-metric {
  border-inline-end: 1px solid var(--hybro-line);
  min-inline-size: 10rem;
  padding: 1rem 1.25rem;
}

.hybro-metric:last-child {
  border-inline-end: 0;
}

.hybro-metric strong {
  display: block;
  font-size: 1.35rem;
  letter-spacing: -0.05em;
}

.hybro-metric span {
  color: var(--hybro-text-secondary);
  font-size: 0.78rem;
}

.hybro-section {
  padding-block: clamp(4.5rem, 10vw, 8rem);
}

.hybro-section--dark {
  background: #101511;
  color: #f4f7f3;
}

@media (prefers-color-scheme: dark) {
  .hybro-section--dark {
    background: #f4f7f3;
    color: #101511;
  }
}

.hybro-display-title {
  font-size: clamp(2.5rem, 6vw, 5rem) !important;
  letter-spacing: -0.075em;
  max-inline-size: 13ch;
  text-wrap: balance;
}

.hybro-format-list {
  border-top: 1px solid currentColor;
  list-style: none;
  margin: 2rem 0 0;
  padding: 0;
}

.hybro-format-list li {
  align-items: baseline;
  border-bottom: 1px solid color-mix(in srgb, currentColor 24%, transparent);
  display: grid;
  font-size: clamp(1.35rem, 2.8vw, 2.2rem);
  font-weight: 800;
  gap: 1rem;
  grid-template-columns: 2.5rem 1fr;
  letter-spacing: -0.05em;
  padding: 0.85rem 0;
}

.hybro-format-list li span {
  color: var(--hybro-lime);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
}

.hybro-card-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.hybro-card {
  background: var(--hybro-surface-raised);
  border: 1px solid var(--hybro-line);
  border-radius: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  justify-content: space-between;
  min-block-size: 16rem;
  padding: clamp(1.4rem, 3vw, 2.25rem);
}

.hybro-card h3 {
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  letter-spacing: -0.06em;
  margin: 0;
}

.hybro-card p {
  color: var(--hybro-text-secondary);
  margin: 0;
}

.hybro-card--accent {
  background: var(--hybro-brand-green);
  border-color: var(--hybro-brand-green);
  color: #fff;
}

.hybro-card--accent p {
  color: rgb(255 255 255 / 84%);
}

/* The optional training funnel is deliberately a short, vertical choice list.
 * It must never inherit the three-column catalogue layout or nested cards. */
.hybro-training-funnel {
  margin-inline: auto;
  max-inline-size: 48rem;
}

.hybro-training-funnel__choices {
  display: grid;
  gap: clamp(0.85rem, 2vw, 1.25rem);
  grid-template-columns: minmax(0, 1fr);
  margin-block: clamp(1.25rem, 3vw, 2rem);
}

.hybro-training-funnel__choice {
  align-items: start;
  background: var(--hybro-surface-raised);
  border: 1px solid var(--hybro-line);
  border-radius: 1.25rem;
  cursor: pointer;
  display: grid;
  gap: 0.55rem;
  grid-template-columns: auto minmax(0, 1fr);
  inline-size: 100%;
  min-block-size: 0;
  padding: clamp(1.15rem, 3vw, 1.75rem);
  transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}

.hybro-training-funnel__choice > input {
  accent-color: var(--hybro-brand-green);
  block-size: 1.15rem;
  inline-size: 1.15rem;
  margin: 0.28rem 0 0;
}

.hybro-training-funnel__choice > :not(input) {
  grid-column: 2;
  min-inline-size: 0;
}

.hybro-training-funnel__choice-title {
  color: var(--hybro-text-primary);
  font-size: clamp(1.25rem, 3vw, 1.7rem);
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1.05;
}

.hybro-training-funnel__choice-description,
.hybro-training-funnel__choice-description p {
  color: var(--hybro-text-secondary);
  margin: 0;
}

.hybro-training-funnel__choice-price {
  color: var(--hybro-brand-green);
  font-size: 1.15rem;
}

.hybro-training-funnel__choice:hover,
.hybro-training-funnel__choice:focus-within,
.hybro-training-funnel__choice.is-selected {
  border-color: var(--hybro-brand-green);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--hybro-brand-green) 24%, transparent);
}

.hybro-training-funnel__choice--none {
  background: color-mix(in srgb, var(--hybro-surface-raised) 92%, var(--hybro-brand-green));
}

.hybro-nc-badge {
  align-self: flex-start;
  border: 1px solid currentColor;
  border-radius: 999px;
  color: var(--hybro-text-secondary);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  padding: 0.35rem 0.65rem;
}

.hybro-steps {
  counter-reset: steps;
  display: grid;
  gap: 0;
  list-style: none;
  margin: 2.5rem 0 0;
  padding: 0;
}

.hybro-steps li {
  border-top: 1px solid var(--hybro-line);
  display: grid;
  gap: 1rem;
  grid-template-columns: 4.5rem 1fr;
  padding: 1.35rem 0;
}

.hybro-steps li::before {
  color: var(--hybro-brand-green);
  content: "0" counter(steps);
  counter-increment: steps;
  font-size: 1.1rem;
  font-weight: 900;
}

.hybro-steps h3,
.hybro-steps p {
  margin: 0;
}

.hybro-steps p {
  color: var(--hybro-text-secondary);
  margin-top: 0.35rem;
}

.hybro-cta {
  background: linear-gradient(125deg, var(--hybro-brand-green), #0b3e25);
  border-radius: clamp(1.25rem, 3vw, 2rem);
  color: #fff;
  overflow: hidden;
  padding: clamp(2rem, 7vw, 5rem);
  position: relative;
}

.hybro-cta::after {
  border: 1px solid rgb(255 255 255 / 34%);
  border-radius: 999px;
  content: "";
  inline-size: min(45vw, 29rem);
  aspect-ratio: 1;
  position: absolute;
  right: -9%;
  top: -30%;
}

.hybro-cta .wp-block-button__link {
  background: var(--hybro-lime);
  color: #101511;
}

.hybro-footer {
  border-top: 1px solid var(--hybro-line);
  color: var(--hybro-text-secondary);
}

.hybro-footer a {
  color: var(--hybro-text-primary);
}

.hybro-event-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
  margin-block-start: 2.25rem;
}

.hybro-event-card,
.hybro-sponsor-card {
  background: var(--hybro-surface-raised);
  border: 1px solid var(--hybro-line);
  border-radius: 1.25rem;
  padding: clamp(1.35rem, 3vw, 2rem);
}

.hybro-event-card h2,
.hybro-event-card h3 {
  font-size: clamp(1.45rem, 3vw, 2.1rem);
  letter-spacing: -.05em;
  margin: .4rem 0 1rem;
}

.hybro-event-card p:not(.hybro-eyebrow),
.hybro-public-empty {
  color: var(--hybro-text-secondary);
}

.hybro-training-offer-group {
  display: grid;
  gap: .8rem;
}

.hybro-training-purchase {
  display: grid;
  gap: .65rem;
}

.hybro-training-purchase label {
  color: var(--hybro-text-primary);
  display: grid;
  font-weight: 700;
  gap: .4rem;
}

.hybro-training-purchase select {
  background: var(--hybro-surface-raised);
  border: 1px solid var(--hybro-line);
  border-radius: .65rem;
  color: var(--hybro-text-primary);
  min-block-size: 3rem;
  padding: .65rem .8rem;
}

.hybro-admin-edition-preview {
  border: 1px dashed var(--hybro-brand-green);
  margin-top: 2.5rem;
  padding: 1.25rem;
}

.hybro-admin-preview-label {
  color: var(--hybro-brand-green) !important;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.hybro-event-link,
.hybro-text-link,
.hybro-archive-link a {
  color: var(--hybro-brand-green);
  display: inline-flex;
  font-weight: 800;
  gap: .35rem;
  margin-top: .75rem;
  text-decoration-thickness: 2px;
  text-underline-offset: .2em;
}

.hybro-archive-link {
  margin-top: 1.5rem;
}

.hybro-public-archive {
  margin-inline: auto;
  max-inline-size: 74rem;
  padding: clamp(2rem, 7vw, 6rem) clamp(1.25rem, 4vw, 2rem);
}

.hybro-public-archive h1,
.hybro-event-title {
  font-size: clamp(3rem, 8vw, 7rem);
  letter-spacing: -.085em;
  line-height: .95;
  margin: .35rem 0 0;
  max-inline-size: 12ch;
}

.hybro-event-page {
  overflow: clip;
}

.hybro-event-width {
  margin-inline: auto;
  max-inline-size: 74rem;
  padding-inline: clamp(1.25rem, 4vw, 2rem);
}

.hybro-event-hero {
  background: radial-gradient(circle at 82% 14%, var(--hybro-hero-glow), transparent 29rem), var(--hybro-surface-canvas);
  padding-block: clamp(4rem, 12vw, 10rem) clamp(3.5rem, 8vw, 7rem);
}

.hybro-event-intro {
  color: var(--hybro-text-secondary);
  font-size: clamp(1.12rem, 2.2vw, 1.5rem);
  line-height: 1.55;
  margin-block: 2rem 0;
  max-inline-size: 48rem;
}

.hybro-event-facts {
  border-block: 1px solid var(--hybro-line);
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
  margin-top: 2rem;
  padding-block: 1rem;
}

.hybro-event-facts div {
  display: grid;
  gap: .25rem;
}

.hybro-event-facts strong {
  color: var(--hybro-brand-green);
  font-size: .75rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.hybro-event-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 1.2rem;
  margin-top: 2rem;
}

.hybro-event-actions .wp-element-button {
  border-radius: 999px;
  min-block-size: 48px;
}

.hybro-event-section {
  padding-block: clamp(3.5rem, 8vw, 7rem);
}

.hybro-event-section--raised {
  background: var(--hybro-surface-raised);
  border-block: 1px solid var(--hybro-line);
}

.hybro-event-section h2 {
  font-size: clamp(2.25rem, 5vw, 4rem);
  letter-spacing: -.07em;
  margin: .25rem 0 2rem;
}

.hybro-event-prose {
  font-size: 1.1rem;
  line-height: 1.65;
  max-inline-size: 64rem;
}

.hybro-gallery {
  display: grid;
  gap: 1rem;
  grid-auto-columns: minmax(16rem, 34rem);
  grid-auto-flow: column;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  padding-block: .25rem 1rem;
  scroll-snap-type: inline mandatory;
}

.hybro-gallery-item {
  margin: 0;
  scroll-snap-align: start;
}

.hybro-gallery-item img {
  aspect-ratio: 4 / 3;
  border-radius: 1.15rem;
  display: block;
  inline-size: 100%;
  object-fit: cover;
}

.hybro-gallery-item figcaption {
  color: var(--hybro-text-secondary);
  font-size: .88rem;
  margin-top: .55rem;
}

.hybro-faq-list {
  border-top: 1px solid var(--hybro-line);
  max-inline-size: 58rem;
}

.hybro-faq-list details {
  border-bottom: 1px solid var(--hybro-line);
  padding: 1.2rem 0;
}

.hybro-faq-list summary {
  cursor: pointer;
  font-size: 1.1rem;
  font-weight: 800;
  padding-right: 2rem;
}

.hybro-faq-list details div {
  color: var(--hybro-text-secondary);
  line-height: 1.55;
}

.hybro-sponsor-grid {
  align-items: stretch;
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
}

.hybro-home-sponsors {
  margin-block: 1rem;
}

.hybro-dashboard-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-block: 1.5rem 2.5rem;
}

.hybro-dashboard-card,
.hybro-entry-status-card,
.hybro-checkin-result,
.hybro-scanner-panel {
  background: var(--hybro-surface-raised);
  border: 1px solid var(--hybro-line);
  border-radius: 1.1rem;
  padding: clamp(1.15rem, 3vw, 1.75rem);
}

.hybro-dashboard-card h2,
.hybro-entry-status-card h3 { margin: .35rem 0; letter-spacing: -.04em; }
.hybro-dashboard-card p:not(.hybro-dashboard-label), .hybro-entry-status-card p { color: var(--hybro-text-secondary); }
.hybro-dashboard-label { color: var(--hybro-brand-green); font-size: .76rem; font-weight: 800; letter-spacing: .1em; margin: 0; text-transform: uppercase; }
.hybro-dashboard-entries { display: grid; gap: 1rem; }
.hybro-entry-status-card header { align-items: start; display: flex; gap: 1rem; justify-content: space-between; }
.hybro-status { border-radius: 999px; font-size: .78rem; font-weight: 800; padding: .35rem .65rem; white-space: nowrap; }
.hybro-status--confirmed { background: color-mix(in srgb, var(--hybro-brand-green) 18%, transparent); color: var(--hybro-brand-green); }
.hybro-status--pending_payment, .hybro-status--waiting_partner { background: color-mix(in srgb, var(--hybro-accent-orange) 18%, transparent); color: var(--hybro-accent-orange); }
.hybro-entry-status-grid { border-block: 1px solid var(--hybro-line); display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-block: 1.25rem; padding-block: 1rem; }
.hybro-entry-status-grid div { display: grid; gap: .2rem; }.hybro-entry-status-grid strong { font-size: .78rem; }.hybro-entry-status-grid span { color: var(--hybro-text-secondary); font-size: .9rem; }
.hybro-next-action { border-inline-start: 4px solid var(--hybro-brand-green); padding-inline-start: .8rem; }.hybro-next-action p { margin: .35rem 0 0; }
.hybro-package-code, .hybro-package-wait { background: color-mix(in srgb, var(--hybro-brand-green) 10%, var(--hybro-surface-raised)); border-radius: .8rem; margin-top: 1rem; padding: 1rem; }.hybro-package-qr { background: #fff; border-radius: .75rem; inline-size: 12rem; margin-block: 1rem; max-inline-size: 100%; padding: .5rem; }.hybro-package-qr img, .hybro-package-qr canvas { display: block; inline-size: 100% !important; block-size: auto !important; }.hybro-package-token { display: block; font-size: .78rem; overflow-wrap: anywhere; padding-block: .5rem; }.hybro-copy-token { min-block-size: 44px; }
.hybro-documents-warning { background: color-mix(in srgb, #f59e0b 18%, var(--hybro-surface-raised)); border: 2px solid #f59e0b; border-radius: .9rem; color: var(--hybro-text-primary); margin-block: 1.5rem; padding: 1.25rem; }.hybro-documents-warning h2,.hybro-documents-warning h3 { color: var(--hybro-text-primary); margin-block-start: 0; }.hybro-document-card { border: 1px solid var(--hybro-border, #4d5950); border-radius: .8rem; margin-block: 1rem; padding: 1rem; }.hybro-document-card h5 { font-size: 1.05rem; margin-block-start: 0; }
.hybro-checkin { margin-inline: auto; max-inline-size: 44rem; padding-block: 2rem; }.hybro-scanner-panel { display: grid; gap: 1rem; margin-block: 1rem; }.hybro-scanner-panel video { background: #000; border-radius: .75rem; inline-size: 100%; max-block-size: 65svh; }.hybro-checkin-result--success { border-color: var(--hybro-brand-green); }.hybro-checkin-result--duplicate { border-color: var(--hybro-accent-orange); }.hybro-checkin-result--error { border-color: #b32d2e; }

.hybro-sponsor-card {
  display: grid;
  place-items: center;
}

.hybro-sponsor-card img {
  block-size: auto;
  max-block-size: 7rem;
  max-inline-size: 100%;
  object-fit: contain;
}

.hybro-sponsor-card p {
  color: var(--hybro-text-secondary);
  font-size: .82rem;
  margin-bottom: 0;
  text-align: center;
}

@media (max-width: 720px) {
	.hybro-header__inner { flex-wrap: wrap; }

	.hybro-header__nav {
		justify-content: flex-start;
		order: 3;
		padding-block-start: .15rem;
		inline-size: 100%;
	}

	.hybro-footer__inner { grid-template-columns: 1fr; }

	.hybro-header__nav a { font-size: .84rem; }

	.hybro-header__actions { gap: .45rem; }

	.hybro-account-menu {
		gap: .55rem;
	}

	.hybro-brand-logo {
		inline-size: clamp(6.5rem, 33vw, 8.5rem);
		max-inline-size: 38vw;
	}

	.hybro-account-menu a {
		font-size: .78rem;
	}

  .hybro-metric-grid,
  .hybro-card-grid,
  .hybro-dashboard-grid {
    grid-template-columns: 1fr;
  }

  .hybro-metric {
    border-block-end: 1px solid var(--hybro-line);
    border-inline-end: 0;
  }

  .hybro-metric:last-child {
    border-block-end: 0;
  }

  .hybro-entry-status-grid { grid-template-columns: 1fr; }
}

.hybro-nc-badge {
  color: var(--hybro-text-secondary);
  font-size: 0.875rem;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

.hybro-registration,
.hybro-athlete-account,
.hybro-access {
	max-inline-size: 58rem;
	margin-inline: auto;
	padding-block: clamp(2rem, 5vw, 4rem);
}

.hybro-access {
	max-inline-size: 36rem;
}

.hybro-access-form {
	margin-block-start: 1.5rem;
}

.hybro-access-remember label {
	align-items: center;
	display: flex;
	gap: .65rem;
	font-weight: 600;
}

.hybro-access-remember input {
	accent-color: var(--hybro-brand);
	block-size: 1.1rem;
	inline-size: 1.1rem;
	min-block-size: 1.1rem;
	padding: 0;
}

.hybro-registration-form {
	display: grid;
	gap: 1.35rem;
}

.hybro-registration-form fieldset {
	min-inline-size: 0;
	margin: 0;
	padding: clamp(1.25rem, 3vw, 2rem);
	border: 1px solid color-mix(in srgb, var(--hybro-text-primary) 16%, transparent);
	border-radius: 1.25rem;
	background: var(--hybro-surface-raised);
	box-shadow: 0 .75rem 2.5rem color-mix(in srgb, var(--hybro-text-primary) 5%, transparent);
}

.hybro-registration-form legend {
	padding-inline: .35rem;
	color: var(--hybro-text-primary);
	font-size: clamp(1.05rem, 2vw, 1.2rem);
	font-weight: 780;
	letter-spacing: -.015em;
}

.hybro-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.35rem 1.5rem;
	margin-block-start: .85rem;
}

.hybro-form-field {
	display: grid;
	gap: .6rem;
	margin: 0;
}

.hybro-form-field--full {
	grid-column: 1 / -1;
}

.hybro-registration-form label {
	margin: 0;
	color: var(--hybro-text-primary);
	font-size: .95rem;
	font-weight: 700;
	line-height: 1.35;
}

.hybro-registration-form input,
.hybro-registration-form select {
	box-sizing: border-box;
	inline-size: 100%;
	min-block-size: 3.25rem;
	padding: .75rem .9rem;
	border: 1px solid color-mix(in srgb, var(--hybro-text-primary) 24%, transparent);
	border-radius: .8rem;
	background: var(--hybro-surface-raised);
	color: var(--hybro-text-primary);
	font: inherit;
	line-height: 1.35;
	transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}

.hybro-registration-form select {
	appearance: auto;
	cursor: pointer;
}

.hybro-registration-form input:hover,
.hybro-registration-form select:hover {
	border-color: color-mix(in srgb, var(--hybro-brand) 65%, var(--hybro-text-primary));
}

.hybro-registration-form input:focus,
.hybro-registration-form select:focus {
	border-color: var(--hybro-brand);
	outline: 3px solid color-mix(in srgb, var(--hybro-brand) 28%, transparent);
	outline-offset: 2px;
	box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--hybro-brand) 13%, transparent);
}

.hybro-registration-form small {
	color: var(--hybro-text-secondary);
	font-size: .825rem;
	line-height: 1.45;
}

.hybro-form-actions {
	margin: .15rem 0 0;
}

.hybro-form-actions .wp-block-button__link {
	min-block-size: 3.1rem;
	padding: .85rem 1.25rem;
	border-radius: .8rem;
	font-weight: 750;
}

.hybro-notice {
	padding: 1rem;
	border-inline-start: 4px solid var(--hybro-brand);
	border-radius: .75rem;
	background: var(--hybro-surface-raised);
}

.hybro-entry-list {
	padding: 0;
	list-style: none;
}

.hybro-entry-list li {
	margin-block: .75rem;
	padding: 1rem;
	border: 1px solid color-mix(in srgb, var(--hybro-text-primary) 16%, transparent);
	border-radius: 1rem;
	background: var(--hybro-surface-raised);
}

@media (max-width: 42rem) {
	.hybro-form-grid {
		grid-template-columns: 1fr;
		gap: 1.15rem;
	}

	.hybro-form-field--full {
		grid-column: auto;
	}
}

/* WooCommerce Blocks keep their own input tokens. Rebind them to HY-BRO's
 * light/dark surfaces so labels, values and placeholders remain WCAG-legible. */
.wc-block-checkout,
.wc-block-cart,
.woocommerce-checkout {
	--wp--preset--color--base: var(--hybro-surface-raised);
	--wp--preset--color--contrast: var(--hybro-text-primary);
	--wc-form-text: var(--hybro-text-primary);
	--wc-form-border-color: color-mix(in srgb, var(--hybro-text-primary) 48%, transparent);
}

.wc-block-components-text-input input,
.wc-block-components-text-input input[type='email'],
.wc-block-components-text-input input[type='tel'],
.wc-block-components-text-input input[type='text'],
.wc-block-components-select .wc-block-components-select__select,
.wc-block-components-combobox .components-combobox-control__input,
.wc-block-components-combobox .components-input-control__input,
.wc-block-components-address-form input,
.wc-block-components-address-form select,
.woocommerce-checkout input.input-text,
.woocommerce-checkout select {
	background: var(--hybro-surface-raised) !important;
	border: 1px solid color-mix(in srgb, var(--hybro-text-primary) 56%, transparent) !important;
	border-radius: .55rem !important;
	color: var(--hybro-text-primary) !important;
	min-block-size: 3.1rem;
}

.wc-block-components-text-input label,
.wc-block-components-select label,
.wc-block-components-address-form label,
.wc-block-checkout__payment-method-label,
.wc-block-checkout .wc-block-components-title,
.wc-block-checkout .wc-block-components-checkbox__label,
.woocommerce-checkout label {
	color: var(--hybro-text-primary) !important;
	font-weight: 700 !important;
	opacity: 1 !important;
}

.wc-block-components-text-input input::placeholder,
.wc-block-components-combobox input::placeholder,
.wc-block-components-address-form input::placeholder,
.woocommerce-checkout input::placeholder {
	color: color-mix(in srgb, var(--hybro-text-primary) 68%, var(--hybro-surface-raised)) !important;
	opacity: 1 !important;
}

.wc-block-components-text-input input:focus,
.wc-block-components-select .wc-block-components-select__select:focus,
.wc-block-components-combobox .components-input-control__input:focus,
.wc-block-components-address-form input:focus,
.wc-block-components-address-form select:focus,
.woocommerce-checkout input:focus,
.woocommerce-checkout select:focus {
	border-color: var(--hybro-focus-ring) !important;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--hybro-focus-ring) 32%, transparent) !important;
	outline: 0 !important;
}

.wc-block-checkout .wc-block-components-radio-control,
.wc-block-checkout .wc-block-checkout__payment-method,
.wc-block-checkout .wc-block-components-order-summary,
.wc-block-components-totals-wrapper,
.wc-block-components-totals-coupon {
	background: var(--hybro-surface-raised) !important;
	border-color: var(--hybro-line) !important;
	color: var(--hybro-text-primary) !important;
}

.wc-block-checkout .wc-block-components-button,
.wc-block-components-totals-coupon__button {
	border-radius: .65rem;
}

.hybro-checkout-sponsors {
	border-top: 1px solid var(--hybro-line);
	margin: clamp(2rem, 6vw, 4rem) auto 0;
	max-inline-size: 76rem;
	padding: clamp(1.5rem, 4vw, 2.5rem) 1rem;
}

.hybro-checkout-sponsors .hybro-sponsor-grid { grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); }

/* Public pre-registration gate: intentionally independent of the editable
 * site header/footer so visitors see only the launch message and timer. */
.hybro-countdown-page,
.hybro-countdown-page #wpadminbar {
	background: #000;
}

.hybro-countdown {
	align-items: center;
	background: #000;
	box-sizing: border-box;
	color: #fff;
	display: grid;
	min-block-size: 100svh;
	padding: clamp(1.25rem, 4vw, 3rem);
	place-items: center;
	position: relative;
}

.hybro-countdown__content {
	max-inline-size: 76rem;
	text-align: center;
}

.hybro-countdown h1 {
	color: #fff;
	font-size: clamp(2.25rem, 7vw, 6.25rem);
	font-weight: 850;
	letter-spacing: -.055em;
	line-height: .98;
	margin: 0;
	max-inline-size: 12ch;
}

.hybro-countdown__timer {
	color: #61f40b;
	display: flex;
	gap: clamp(.65rem, 2.5vw, 2rem);
	justify-content: center;
	margin-block-start: clamp(2rem, 6vw, 4.5rem);
}

.hybro-countdown__timer span {
	display: grid;
	gap: .35rem;
	min-inline-size: clamp(3.75rem, 11vw, 8.25rem);
}

.hybro-countdown__timer strong {
	font-size: clamp(2.35rem, 8vw, 7.25rem);
	font-variant-numeric: tabular-nums;
	font-weight: 850;
	letter-spacing: -.065em;
	line-height: .9;
}

.hybro-countdown__timer small {
	color: #61f40b;
	font-size: clamp(.68rem, 1.2vw, .9rem);
	font-weight: 800;
	letter-spacing: .11em;
	text-transform: uppercase;
}

.hybro-countdown__admin {
	border: 1px solid color-mix(in srgb, #fff 56%, transparent);
	border-radius: 999px;
	color: #fff;
	font-size: .9rem;
	font-weight: 750;
	min-block-size: 44px;
	padding: .68rem 1rem;
	position: absolute;
	inset-block-start: clamp(1rem, 3vw, 2rem);
	inset-inline-end: clamp(1rem, 3vw, 2rem);
	text-decoration: none;
}

.hybro-countdown__admin:hover,
.hybro-countdown__admin:focus-visible {
	background: #fff;
	color: #000;
}

.hybro-admin-access {
	max-inline-size: 36rem;
	margin-inline: auto;
	padding-block: clamp(2rem, 5vw, 4rem);
}

@media (max-width: 34rem) {
	.hybro-countdown__timer { gap: .55rem; }
	.hybro-countdown__timer span { min-inline-size: 0; }
}
