/* GEKUMI reusable UI primitives. Business logic remains outside CSS. */
.gekumi-button {
  display: inline-flex;
  min-block-size: var(--gekumi-control-min-target);
  align-items: center;
  justify-content: center;
  gap: var(--gekumi-space-2);
  padding: 0.6875rem 1.125rem;
  border: var(--gekumi-border-width) solid transparent;
  border-radius: var(--gekumi-radius-button);
  background: var(--gekumi-color-primary);
  color: var(--gekumi-color-inverse);
  cursor: pointer;
  font-size: var(--gekumi-font-size-button);
  font-weight: var(--gekumi-font-weight-semibold);
  letter-spacing: var(--gekumi-letter-spacing-interface);
  line-height: var(--gekumi-line-height-compact);
  text-align: center;
  text-decoration: none;
  white-space: normal;
  transition: background-color var(--gekumi-motion-fast) var(--gekumi-motion-easing),
    border-color var(--gekumi-motion-fast) var(--gekumi-motion-easing),
    color var(--gekumi-motion-fast) var(--gekumi-motion-easing);
}

.gekumi-button:hover {
  background: var(--gekumi-color-secondary);
}

.gekumi-button:active {
  background: var(--gekumi-color-primary);
}

.gekumi-button--accent {
  background: var(--gekumi-color-accent);
}

.gekumi-button--accent:hover {
  background: var(--gekumi-color-accent-strong);
}

.gekumi-button--secondary {
  border-color: var(--gekumi-color-primary);
  background: transparent;
  color: var(--gekumi-color-primary);
}

.gekumi-button--secondary:hover {
  background: var(--gekumi-color-surface-alt);
}

.gekumi-button--quiet {
  background: transparent;
  color: var(--gekumi-color-primary);
}

.gekumi-button--quiet:hover {
  background: var(--gekumi-color-surface-alt);
}

.gekumi-button:disabled,
.gekumi-button[aria-disabled="true"] {
  border-color: var(--gekumi-color-border);
  background: var(--gekumi-color-surface-alt);
  color: var(--gekumi-color-muted-text);
  cursor: not-allowed;
  opacity: 0.72;
}

.gekumi-text-link {
  display: inline-flex;
  align-items: center;
  gap: var(--gekumi-space-1);
  color: var(--gekumi-color-primary);
  font-weight: var(--gekumi-font-weight-semibold);
  text-decoration-color: var(--gekumi-color-accent);
  text-decoration-thickness: 2px;
  text-underline-offset: 0.22em;
}

.gekumi-text-link:hover {
  color: var(--gekumi-color-accent);
}

.gekumi-badge {
  display: inline-flex;
  min-block-size: 1.75rem;
  align-items: center;
  gap: var(--gekumi-space-1);
  max-inline-size: 100%;
  padding: 0.25rem 0.625rem;
  border: var(--gekumi-border-width) solid var(--gekumi-color-border);
  border-radius: var(--gekumi-radius-pill);
  background: var(--gekumi-color-surface);
  color: var(--gekumi-color-primary);
  font-size: var(--gekumi-font-size-badge);
  font-weight: var(--gekumi-font-weight-semibold);
  line-height: var(--gekumi-line-height-compact);
  white-space: normal;
}

.gekumi-badge svg,
.gekumi-status-icon {
  inline-size: 1rem;
  block-size: 1rem;
  flex: 0 0 auto;
}

.gekumi-badge--success {
  border-color: var(--gekumi-color-success);
  background: var(--gekumi-color-success-soft);
  color: var(--gekumi-color-success);
}

.gekumi-badge--warning {
  border-color: var(--gekumi-color-warning);
  background: var(--gekumi-color-warning-soft);
  color: var(--gekumi-color-warning);
}

.gekumi-badge--error {
  border-color: var(--gekumi-color-error);
  background: var(--gekumi-color-error-soft);
  color: var(--gekumi-color-error);
}

.gekumi-badge--info {
  border-color: var(--gekumi-color-info);
  background: var(--gekumi-color-info-soft);
  color: var(--gekumi-color-info);
}

.gekumi-alert,
.gekumi-notice {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--gekumi-space-3);
  padding: var(--gekumi-space-4);
  border: var(--gekumi-border-width) solid var(--gekumi-color-border);
  border-inline-start: 4px solid var(--gekumi-color-secondary);
  border-radius: var(--gekumi-radius-button);
  background: var(--gekumi-color-surface);
}

.gekumi-alert--success {
  border-inline-start-color: var(--gekumi-color-success);
  background: var(--gekumi-color-success-soft);
}

.gekumi-alert--warning {
  border-inline-start-color: var(--gekumi-color-warning);
  background: var(--gekumi-color-warning-soft);
}

.gekumi-alert--error {
  border-inline-start-color: var(--gekumi-color-error);
  background: var(--gekumi-color-error-soft);
}

.gekumi-card,
.gekumi-image-card,
.gekumi-animal-card,
.gekumi-species-card,
.gekumi-document-card,
.gekumi-buyer-gate,
.gekumi-country-panel,
.gekumi-rfq-summary,
.gekumi-document-access-card {
  overflow: hidden;
  border: var(--gekumi-border-width) solid var(--gekumi-color-border);
  border-radius: var(--gekumi-radius-card);
  background: var(--gekumi-color-surface);
}

.gekumi-card,
.gekumi-document-card,
.gekumi-buyer-gate,
.gekumi-country-panel,
.gekumi-rfq-summary,
.gekumi-document-access-card {
  padding: var(--gekumi-space-6);
}

.gekumi-card:hover,
.gekumi-image-card:hover,
.gekumi-animal-card:hover,
.gekumi-species-card:hover,
.gekumi-document-card:hover {
  border-color: var(--gekumi-color-secondary);
  box-shadow: var(--gekumi-shadow-card);
}

.gekumi-image-card__media,
.gekumi-animal-card__media,
.gekumi-species-card__media {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--gekumi-color-surface-alt);
}

.gekumi-image-card__media img,
.gekumi-animal-card__media img,
.gekumi-species-card__media img {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
}

.gekumi-image-card__body,
.gekumi-animal-card__body,
.gekumi-species-card__body {
  display: flex;
  flex-direction: column;
  gap: var(--gekumi-space-4);
  padding: var(--gekumi-space-6);
}

.gekumi-section-header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--gekumi-space-8);
  margin-block-end: var(--gekumi-space-8);
}

.gekumi-section-header__copy {
  display: grid;
  gap: var(--gekumi-space-3);
  max-inline-size: 48rem;
}

.gekumi-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: var(--gekumi-space-2);
  align-items: center;
  color: var(--gekumi-color-text-subtle);
  font-size: var(--gekumi-font-size-body-small);
}

.gekumi-breadcrumb [aria-current="page"] {
  color: var(--gekumi-color-primary);
  font-weight: var(--gekumi-font-weight-semibold);
}

.gekumi-tabs {
  display: flex;
  gap: var(--gekumi-space-1);
  overflow-x: auto;
  border-block-end: var(--gekumi-border-width) solid var(--gekumi-color-border);
  scrollbar-width: thin;
}

.gekumi-tab {
  min-block-size: var(--gekumi-control-min-target);
  flex: 0 0 auto;
  padding: var(--gekumi-space-3) var(--gekumi-space-4);
  border: 0;
  border-block-end: 3px solid transparent;
  background: transparent;
  cursor: pointer;
  font-weight: var(--gekumi-font-weight-semibold);
}

.gekumi-tab:hover {
  background: var(--gekumi-color-surface-alt);
}

.gekumi-tab[aria-selected="true"] {
  border-block-end-color: var(--gekumi-color-accent);
}

.gekumi-accordion {
  border-block: var(--gekumi-border-width) solid var(--gekumi-color-border);
}

.gekumi-accordion + .gekumi-accordion {
  border-block-start: 0;
}

.gekumi-accordion summary {
  min-block-size: var(--gekumi-control-min-target);
  padding: var(--gekumi-space-4) var(--gekumi-space-2);
  cursor: pointer;
  font-weight: var(--gekumi-font-weight-semibold);
}

.gekumi-accordion[open] summary {
  color: var(--gekumi-color-secondary);
}

.gekumi-accordion__content {
  padding: 0 var(--gekumi-space-2) var(--gekumi-space-4);
}

.gekumi-modal,
.gekumi-drawer {
  max-inline-size: min(42rem, calc(100vw - 2rem));
  max-block-size: calc(100dvh - 2rem);
  padding: 0;
  overflow: auto;
  border: 0;
  border-radius: var(--gekumi-radius-card);
  background: var(--gekumi-color-surface);
  box-shadow: var(--gekumi-shadow-overlay);
}

.gekumi-modal::backdrop,
.gekumi-drawer::backdrop {
  background: var(--gekumi-color-overlay);
}

.gekumi-modal__body,
.gekumi-drawer__body {
  padding: var(--gekumi-space-8);
}

.gekumi-drawer {
  inline-size: min(30rem, 100vw);
  block-size: 100dvh;
  max-block-size: 100dvh;
  margin: 0 0 0 auto;
  border-radius: 0;
}

.gekumi-table-wrap {
  max-inline-size: 100%;
  overflow-x: auto;
}

.gekumi-data-table,
.gekumi-spec-table {
  inline-size: 100%;
  border-collapse: collapse;
  background: var(--gekumi-color-surface);
}

.gekumi-data-table :is(th, td),
.gekumi-spec-table :is(th, td) {
  padding: var(--gekumi-space-3) var(--gekumi-space-4);
  border-block-end: var(--gekumi-border-width) solid var(--gekumi-color-border);
  text-align: start;
  vertical-align: top;
}

.gekumi-data-table th,
.gekumi-spec-table th {
  color: var(--gekumi-color-text-subtle);
  font-size: var(--gekumi-font-size-spec-label);
  font-weight: var(--gekumi-font-weight-semibold);
}

.gekumi-mobile-data-card {
  display: grid;
  gap: var(--gekumi-space-3);
  padding: var(--gekumi-space-4);
  border: var(--gekumi-border-width) solid var(--gekumi-color-border);
  border-radius: var(--gekumi-radius-card);
  background: var(--gekumi-color-surface);
}

.gekumi-mobile-data-card__row {
  display: grid;
  grid-template-columns: minmax(7rem, 0.8fr) minmax(0, 1.2fr);
  gap: var(--gekumi-space-3);
}

.gekumi-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: var(--gekumi-space-2);
  align-items: center;
}

.gekumi-pagination a,
.gekumi-pagination button,
.gekumi-pagination [aria-current="page"] {
  display: inline-flex;
  min-inline-size: var(--gekumi-control-min-target);
  min-block-size: var(--gekumi-control-min-target);
  align-items: center;
  justify-content: center;
  border: var(--gekumi-border-width) solid var(--gekumi-color-border);
  border-radius: var(--gekumi-radius-button);
  background: var(--gekumi-color-surface);
  color: var(--gekumi-color-primary);
  text-decoration: none;
}

.gekumi-pagination :is(a, button):hover,
.gekumi-pagination [aria-current="page"] {
  border-color: var(--gekumi-color-primary);
  background: var(--gekumi-color-primary);
  color: var(--gekumi-color-inverse);
}

.gekumi-field {
  display: grid;
  gap: var(--gekumi-space-2);
}

.gekumi-field__label {
  font-size: var(--gekumi-font-size-body-small);
  font-weight: var(--gekumi-font-weight-semibold);
}

.gekumi-field :is(input:not([type="checkbox"]), select, textarea),
.gekumi-file-upload {
  inline-size: 100%;
  min-block-size: var(--gekumi-control-min-target);
  padding: 0.625rem 0.75rem;
  border: var(--gekumi-border-width) solid var(--gekumi-color-border);
  border-radius: var(--gekumi-radius-button);
  background: var(--gekumi-color-surface);
}

.gekumi-field :is(input, select, textarea):hover,
.gekumi-file-upload:hover {
  border-color: var(--gekumi-color-secondary);
}

.gekumi-field.is-error :is(input, select, textarea),
.gekumi-field [aria-invalid="true"] {
  border-color: var(--gekumi-color-error);
}

.gekumi-field.is-success :is(input, select, textarea) {
  border-color: var(--gekumi-color-success);
}

.gekumi-field__message {
  color: var(--gekumi-color-text-subtle);
  font-size: var(--gekumi-font-size-body-small);
}

.gekumi-field.is-error .gekumi-field__message {
  color: var(--gekumi-color-error);
}

.gekumi-checkbox {
  display: grid;
  grid-template-columns: 1.25rem minmax(0, 1fr);
  gap: var(--gekumi-space-3);
  align-items: start;
}

.gekumi-checkbox input {
  inline-size: 1.25rem;
  block-size: 1.25rem;
  margin: 0.15rem 0 0;
  accent-color: var(--gekumi-color-secondary);
}

.gekumi-file-upload {
  display: grid;
  place-items: center;
  min-block-size: 7rem;
  border-style: dashed;
  text-align: center;
}

.gekumi-empty-state {
  display: grid;
  justify-items: start;
  gap: var(--gekumi-space-4);
  padding: var(--gekumi-space-8);
  border: var(--gekumi-border-width) dashed var(--gekumi-color-border);
  border-radius: var(--gekumi-radius-card);
  background: var(--gekumi-color-surface);
}

.gekumi-skeleton {
  min-block-size: 1rem;
  border-radius: var(--gekumi-radius-button);
  background: linear-gradient(90deg, var(--gekumi-color-surface-alt), var(--gekumi-color-border));
}

.gekumi-animal-card__eyebrow,
.gekumi-document-card__meta,
.gekumi-card__meta {
  color: var(--gekumi-color-text-subtle);
  font-size: var(--gekumi-font-size-body-small);
}

.gekumi-animal-card__title,
.gekumi-species-card__title,
.gekumi-document-card__title {
  font-size: var(--gekumi-font-size-h4);
  font-weight: var(--gekumi-font-weight-semibold);
  line-height: var(--gekumi-line-height-heading);
}

.gekumi-animal-card__badges,
.gekumi-document-card__actions,
.gekumi-action-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--gekumi-space-2);
  align-items: center;
}

.gekumi-document-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--gekumi-space-4);
  align-items: start;
}

.gekumi-document-card__icon {
  display: grid;
  inline-size: 2.75rem;
  block-size: 2.75rem;
  place-items: center;
  border-radius: var(--gekumi-radius-button);
  background: var(--gekumi-color-surface-alt);
  color: var(--gekumi-color-secondary);
  font-weight: var(--gekumi-font-weight-bold);
}

.gekumi-rfq-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--gekumi-space-4);
  padding: var(--gekumi-space-4);
  border: var(--gekumi-border-width) solid var(--gekumi-color-border);
  border-radius: var(--gekumi-radius-card);
  background: var(--gekumi-color-surface);
  box-shadow: var(--gekumi-shadow-card);
}

.gekumi-site-header {
  position: sticky;
  z-index: 100;
  inset-block-start: 0;
  border-block-end: var(--gekumi-border-width) solid var(--gekumi-color-border);
  background: var(--gekumi-color-surface);
}

.gekumi-utility-bar {
  border-block-end: var(--gekumi-border-width) solid var(--gekumi-color-border);
  background: var(--gekumi-color-background);
}

.gekumi-utility-bar__inner,
.gekumi-header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--gekumi-space-4);
}

.gekumi-utility-bar__inner {
  min-block-size: 2.5rem;
  justify-content: flex-end;
  font-size: var(--gekumi-font-size-body-small);
}

.gekumi-header-row {
  min-block-size: 4.5rem;
}

.gekumi-brand {
  flex: 0 0 auto;
  color: var(--gekumi-color-primary);
  font-size: 1.25rem;
  font-weight: var(--gekumi-font-weight-bold);
  letter-spacing: 0.16em;
  line-height: 1;
  text-decoration: none;
}

.gekumi-primary-nav {
  align-self: stretch;
}

.gekumi-primary-nav ul,
.gekumi-footer-links,
.gekumi-mobile-navigation ul {
  padding: 0;
  margin: 0;
  list-style: none;
}

.gekumi-primary-nav > ul {
  display: flex;
  block-size: 100%;
  align-items: stretch;
  justify-content: center;
  gap: var(--gekumi-space-1);
}

.gekumi-primary-nav a,
.gekumi-header-link {
  position: relative;
  display: inline-flex;
  min-block-size: var(--gekumi-control-min-target);
  align-items: center;
  padding-inline: var(--gekumi-space-2);
  color: var(--gekumi-color-primary);
  font-size: var(--gekumi-font-size-navigation);
  font-weight: var(--gekumi-font-weight-semibold);
  line-height: var(--gekumi-line-height-compact);
  text-decoration: none;
}

.gekumi-primary-nav a::after {
  position: absolute;
  block-size: 3px;
  background: var(--gekumi-color-accent);
  content: "";
  inset-block-end: 0;
  inset-inline: var(--gekumi-space-2);
  opacity: 0;
  transform: scaleX(0.6);
  transition: opacity var(--gekumi-motion-fast) var(--gekumi-motion-easing),
    transform var(--gekumi-motion-fast) var(--gekumi-motion-easing);
}

.gekumi-primary-nav a:hover,
.gekumi-header-link:hover {
  color: var(--gekumi-color-secondary);
}

.gekumi-primary-nav a:is(:hover, [aria-current="page"])::after {
  opacity: 1;
  transform: scaleX(1);
}

.gekumi-primary-nav a[aria-current="page"] {
  color: var(--gekumi-color-primary);
}

.gekumi-header-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: var(--gekumi-space-2);
}

.gekumi-language-switcher {
  position: relative;
}

.gekumi-language-switcher summary,
.gekumi-mobile-navigation > summary {
  display: inline-flex;
  min-block-size: var(--gekumi-control-min-target);
  align-items: center;
  justify-content: center;
  gap: var(--gekumi-space-1);
  padding-inline: var(--gekumi-space-3);
  border: var(--gekumi-border-width) solid var(--gekumi-color-border);
  border-radius: var(--gekumi-radius-button);
  background: var(--gekumi-color-surface);
  cursor: pointer;
  font-size: var(--gekumi-font-size-body-small);
  font-weight: var(--gekumi-font-weight-semibold);
  list-style: none;
}

.gekumi-language-switcher summary::-webkit-details-marker,
.gekumi-mobile-navigation > summary::-webkit-details-marker {
  display: none;
}

.gekumi-language-switcher__menu {
  position: absolute;
  z-index: 110;
  min-inline-size: 12rem;
  padding: var(--gekumi-space-2);
  margin-block-start: var(--gekumi-space-2);
  border: var(--gekumi-border-width) solid var(--gekumi-color-border);
  border-radius: var(--gekumi-radius-button);
  background: var(--gekumi-color-surface);
  box-shadow: var(--gekumi-shadow-overlay);
  inset-inline-end: 0;
}

.gekumi-language-switcher__menu a {
  display: flex;
  min-block-size: var(--gekumi-control-min-target);
  align-items: center;
  justify-content: space-between;
  gap: var(--gekumi-space-3);
  padding-inline: var(--gekumi-space-3);
  border-radius: var(--gekumi-radius-button);
  text-decoration: none;
}

.gekumi-language-switcher__menu a:hover {
  background: var(--gekumi-color-surface-alt);
}

.gekumi-language-switcher__menu a[aria-current="true"] {
  color: var(--gekumi-color-secondary);
  font-weight: var(--gekumi-font-weight-semibold);
}

.gekumi-mobile-navigation {
  position: relative;
  display: none;
}

.gekumi-mobile-navigation__panel {
  position: absolute;
  z-index: 105;
  inline-size: min(30rem, calc(100vw - 2rem));
  max-block-size: calc(100dvh - 5rem);
  padding: var(--gekumi-space-4);
  overflow: auto;
  border: var(--gekumi-border-width) solid var(--gekumi-color-border);
  border-radius: var(--gekumi-radius-card);
  background: var(--gekumi-color-surface);
  box-shadow: var(--gekumi-shadow-overlay);
  inset-block-start: calc(100% + var(--gekumi-space-2));
  inset-inline-start: 0;
}

.gekumi-mobile-navigation__panel > * + * {
  margin-block-start: var(--gekumi-space-4);
}

.gekumi-mobile-navigation a,
.gekumi-mobile-navigation summary {
  min-block-size: var(--gekumi-control-min-target);
}

.gekumi-mobile-navigation a {
  display: flex;
  align-items: center;
  padding: var(--gekumi-space-2);
  border-block-end: var(--gekumi-border-width) solid var(--gekumi-color-border);
  font-weight: var(--gekumi-font-weight-semibold);
  text-decoration: none;
}

.gekumi-site-footer {
  border-block-start: var(--gekumi-border-width) solid var(--gekumi-color-border);
  background: var(--gekumi-color-primary);
  color: var(--gekumi-color-inverse);
}

.gekumi-footer-grid {
  display: grid;
  grid-template-columns: minmax(16rem, 2fr) repeat(5, minmax(8rem, 1fr));
  gap: var(--gekumi-space-8) var(--gekumi-space-6);
  padding-block: var(--gekumi-space-16);
}

.gekumi-footer-brand {
  display: grid;
  align-content: start;
  gap: var(--gekumi-space-4);
  max-inline-size: 24rem;
}

.gekumi-footer-brand .gekumi-brand {
  color: var(--gekumi-color-inverse);
}

.gekumi-footer-group summary {
  margin-block-end: var(--gekumi-space-3);
  color: var(--gekumi-color-inverse);
  cursor: pointer;
  font-size: var(--gekumi-font-size-caption);
  font-weight: var(--gekumi-font-weight-bold);
  letter-spacing: var(--gekumi-letter-spacing-label);
  list-style: none;
}

.gekumi-footer-group summary::-webkit-details-marker {
  display: none;
}

.gekumi-footer-links {
  display: grid;
  gap: var(--gekumi-space-2);
}

.gekumi-footer-links a {
  display: inline-flex;
  min-block-size: 2.25rem;
  align-items: center;
  color: var(--gekumi-color-inverse);
  font-size: var(--gekumi-font-size-body-small);
  text-underline-offset: 0.2em;
}

.gekumi-footer-legal {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--gekumi-space-4);
  padding-block: var(--gekumi-space-4);
  border-block-start: var(--gekumi-border-width) solid var(--gekumi-color-secondary);
  font-size: var(--gekumi-font-size-caption);
}

.gekumi-species-card__scientific,
.gekumi-animal-card__scientific {
  font-style: italic;
}

.gekumi-species-card__status,
.gekumi-country-panel__statuses,
.gekumi-record-grid {
  display: grid;
  gap: var(--gekumi-space-3);
}

.gekumi-country-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--gekumi-grid-gap);
}

.gekumi-country-panel {
  display: grid;
  gap: var(--gekumi-space-6);
}

.gekumi-country-panel__header,
.gekumi-country-panel__layer,
.gekumi-rfq-summary__header {
  display: grid;
  gap: var(--gekumi-space-2);
}

.gekumi-country-panel__layer {
  padding-block-start: var(--gekumi-space-4);
  border-block-start: var(--gekumi-border-width) solid var(--gekumi-color-border);
}

.gekumi-status-row,
.gekumi-rfq-summary__row {
  display: grid;
  grid-template-columns: minmax(9rem, 0.9fr) minmax(0, 1.1fr);
  gap: var(--gekumi-space-4);
  align-items: start;
  padding-block: var(--gekumi-space-3);
  border-block-end: var(--gekumi-border-width) solid var(--gekumi-color-border);
}

.gekumi-status-row:last-child,
.gekumi-rfq-summary__row:last-child {
  border-block-end: 0;
}

.gekumi-buyer-gate,
.gekumi-document-access-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--gekumi-space-4);
  border-inline-start: 4px solid var(--gekumi-color-info);
  background: var(--gekumi-color-info-soft);
}

.gekumi-buyer-gate__icon,
.gekumi-document-access-card__icon {
  display: grid;
  inline-size: 2.75rem;
  block-size: 2.75rem;
  place-items: center;
  border-radius: var(--gekumi-radius-button);
  background: var(--gekumi-color-surface);
  color: var(--gekumi-color-info);
  font-weight: var(--gekumi-font-weight-bold);
}

.gekumi-buyer-gate__body,
.gekumi-document-access-card__body,
.gekumi-rfq-summary {
  gap: var(--gekumi-space-4);
}

.gekumi-buyer-gate__body,
.gekumi-document-access-card__body,
.gekumi-rfq-summary,
.gekumi-record,
.gekumi-lineage-block,
.gekumi-health-record {
  display: grid;
}

/* STEP 04D homepage Hero and structure. */
.gekumi-home-hero-host,
.gekumi-home-trust-host,
.gekumi-home-section-host {
  inline-size: 100%;
  max-inline-size: none;
  padding: 0 !important;
  margin: 0 !important;
}

.gekumi-home-hero-host :is(.elementor-widget-html, .elementor-widget-container),
.gekumi-home-trust-host :is(.elementor-widget-html, .elementor-widget-container),
.gekumi-home-section-host :is(.elementor-widget-html, .elementor-widget-container) {
  inline-size: 100%;
}

.gekumi-home-hero,
.gekumi-home-hero__title,
.gekumi-home-trust {
  font-family: var(--gekumi-font-latin);
  font-style: normal;
}

.gekumi-home-hero {
  position: relative;
  display: flex;
  min-block-size: clamp(42.5rem, 55vw, 51.25rem);
  align-items: center;
  overflow: hidden;
  background: var(--gekumi-color-background);
  color: var(--gekumi-color-primary);
  isolation: isolate;
}

.gekumi-home-hero::before {
  position: absolute;
  z-index: -1;
  inline-size: min(46rem, 60vw);
  block-size: min(46rem, 60vw);
  border: var(--gekumi-border-width) solid var(--gekumi-color-border);
  border-radius: var(--gekumi-radius-pill);
  content: "";
  inset-block-start: -22rem;
  inset-inline-start: -18rem;
  opacity: 0.72;
}

.gekumi-home-hero__grid {
  display: grid;
  grid-template-columns: repeat(var(--gekumi-grid-columns-desktop), minmax(0, 1fr));
  gap: clamp(var(--gekumi-space-8), 5vw, var(--gekumi-space-16));
  align-items: center;
  padding-block: var(--gekumi-space-16) var(--gekumi-space-24);
}

.gekumi-home-hero__content {
  display: grid;
  grid-column: 1 / span 7;
  gap: var(--gekumi-space-6);
  align-content: center;
  max-inline-size: 49rem;
}

.gekumi-home-hero__eyebrow,
.gekumi-home-hero__context,
.gekumi-home-hero__visual-kicker,
.gekumi-home-hero__visual-meta {
  margin: 0;
  font-size: var(--gekumi-font-size-caption);
  font-weight: var(--gekumi-font-weight-semibold);
  letter-spacing: var(--gekumi-letter-spacing-label);
  line-height: var(--gekumi-line-height-compact);
  text-transform: uppercase;
}

.gekumi-home-hero__eyebrow {
  display: flex;
  align-items: center;
  gap: var(--gekumi-space-3);
  color: var(--gekumi-color-secondary);
}

.gekumi-home-hero__eyebrow::before {
  inline-size: var(--gekumi-space-8);
  block-size: 2px;
  background: var(--gekumi-color-accent);
  content: "";
}

.gekumi-home-hero__title {
  max-inline-size: 100%;
  margin: 0;
  color: var(--gekumi-color-primary);
  font-size: var(--gekumi-font-size-h2);
  font-weight: var(--gekumi-font-weight-semibold);
  letter-spacing: var(--gekumi-letter-spacing-heading);
  line-height: var(--gekumi-line-height-heading);
  text-wrap: balance;
}

.gekumi-home-hero__title-line {
  display: block;
}

.gekumi-home-hero__copy {
  max-inline-size: 42rem;
  margin: 0;
  color: var(--gekumi-color-text-subtle);
  font-size: var(--gekumi-font-size-body-large);
  line-height: var(--gekumi-line-height-body);
}

.gekumi-home-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--gekumi-space-3);
  align-items: stretch;
}

.gekumi-home-hero__actions .gekumi-button {
  min-block-size: 3rem;
  padding-inline: var(--gekumi-space-6);
}

.gekumi-home-hero__context {
  color: var(--gekumi-color-muted-text);
}

.gekumi-home-hero__visual {
  position: relative;
  display: grid;
  min-block-size: 34rem;
  grid-column: 8 / -1;
  place-items: center;
  overflow: hidden;
  margin: 0;
  border: var(--gekumi-border-width) solid var(--gekumi-color-primary);
  border-radius: var(--gekumi-radius-media);
  background: linear-gradient(145deg, var(--gekumi-color-primary), var(--gekumi-color-secondary));
  color: var(--gekumi-color-inverse);
}

.gekumi-home-hero__visual::before,
.gekumi-home-hero__visual::after {
  position: absolute;
  border: var(--gekumi-border-width) solid var(--gekumi-color-inverse);
  border-radius: var(--gekumi-radius-pill);
  content: "";
  opacity: 0.22;
}

.gekumi-home-hero__visual::before {
  inline-size: 27rem;
  block-size: 27rem;
  inset-block-start: -6rem;
  inset-inline-end: -8rem;
}

.gekumi-home-hero__visual::after {
  inline-size: 16rem;
  block-size: 16rem;
  inset-block-end: -5rem;
  inset-inline-start: -5rem;
}

.gekumi-home-hero__visual-frame {
  position: relative;
  z-index: 1;
  display: grid;
  inline-size: calc(100% - var(--gekumi-space-12));
  min-block-size: 27rem;
  grid-template-rows: auto 1fr auto;
  padding: var(--gekumi-space-6);
  border: var(--gekumi-border-width) solid color-mix(in srgb, var(--gekumi-color-inverse) 36%, transparent);
}

.gekumi-home-hero__visual-mark {
  display: grid;
  place-items: center;
  color: var(--gekumi-color-inverse);
  font-size: clamp(7rem, 14vw, 12rem);
  font-weight: var(--gekumi-font-weight-regular);
  letter-spacing: -0.08em;
  line-height: 1;
  opacity: 0.9;
}

.gekumi-home-hero__visual-meta {
  justify-self: end;
  text-align: end;
}

.gekumi-home-trust {
  position: relative;
  z-index: 2;
  margin-block-start: calc(-1 * var(--gekumi-space-8));
}

.gekumi-home-trust .gekumi-trust-strip {
  padding: 0;
  margin: 0;
  border: var(--gekumi-border-width) solid var(--gekumi-color-border);
  border-radius: var(--gekumi-radius-card);
  background: var(--gekumi-color-surface);
  box-shadow: var(--gekumi-shadow-card);
  list-style: none;
}

.gekumi-home-trust .gekumi-trust-strip__item {
  min-block-size: 5rem;
  align-items: center;
  padding: var(--gekumi-space-4);
}

.gekumi-home-trust .gekumi-trust-strip__item + .gekumi-trust-strip__item {
  border-inline-start: var(--gekumi-border-width) solid var(--gekumi-color-border);
}

.gekumi-trust-strip__marker {
  display: grid;
  inline-size: 2rem;
  block-size: 2rem;
  place-items: center;
  border: var(--gekumi-border-width) solid var(--gekumi-color-secondary);
  border-radius: var(--gekumi-radius-pill);
  color: var(--gekumi-color-secondary);
  font-size: var(--gekumi-font-size-caption);
  font-weight: var(--gekumi-font-weight-semibold);
}

.gekumi-trust-strip__label {
  color: var(--gekumi-color-primary);
  font-size: var(--gekumi-font-size-body-small);
  font-weight: var(--gekumi-font-weight-semibold);
  line-height: var(--gekumi-line-height-compact);
}

.gekumi-home-section--placeholder {
  display: block;
  block-size: 0;
  overflow: hidden;
  scroll-margin-block-start: 5rem;
}

.gekumi-trust-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--gekumi-space-4);
  padding: var(--gekumi-space-4);
  border-block: var(--gekumi-border-width) solid var(--gekumi-color-border);
}

.gekumi-trust-strip__item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--gekumi-space-2);
  align-items: start;
}

.gekumi-shipment-timeline {
  padding: 0;
  margin: 0;
  list-style: none;
}

.gekumi-shipment-timeline__item {
  position: relative;
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  gap: var(--gekumi-space-3);
  padding-block-end: var(--gekumi-space-6);
}

.gekumi-shipment-timeline__item:not(:last-child)::before {
  position: absolute;
  inline-size: 2px;
  background: var(--gekumi-color-border);
  content: "";
  inset-block: 2rem 0;
  inset-inline-start: calc(1rem - 1px);
}

.gekumi-shipment-timeline__marker {
  z-index: 1;
  display: grid;
  inline-size: 2rem;
  block-size: 2rem;
  place-items: center;
  border: var(--gekumi-border-width) solid var(--gekumi-color-border);
  border-radius: var(--gekumi-radius-pill);
  background: var(--gekumi-color-surface);
  font-size: var(--gekumi-font-size-caption);
  font-weight: var(--gekumi-font-weight-bold);
}

.gekumi-shipment-timeline__item.is-current .gekumi-shipment-timeline__marker {
  border-color: var(--gekumi-color-info);
  background: var(--gekumi-color-info-soft);
  color: var(--gekumi-color-info);
}

.gekumi-shipment-timeline__copy {
  display: grid;
  gap: var(--gekumi-space-1);
}

.gekumi-rfq-summary__items {
  border-block: var(--gekumi-border-width) solid var(--gekumi-color-border);
}

.gekumi-record,
.gekumi-lineage-block,
.gekumi-health-record {
  gap: var(--gekumi-space-3);
  padding: var(--gekumi-space-4);
  border: var(--gekumi-border-width) solid var(--gekumi-color-border);
  border-radius: var(--gekumi-radius-card);
  background: var(--gekumi-color-surface);
}

.gekumi-wholesale-tier-table {
  inline-size: 100%;
  border-collapse: collapse;
  background: var(--gekumi-color-surface);
}

.gekumi-wholesale-tier-table :is(th, td) {
  padding: var(--gekumi-space-3) var(--gekumi-space-4);
  border-block-end: var(--gekumi-border-width) solid var(--gekumi-color-border);
  text-align: start;
  vertical-align: top;
}

.gekumi-facility-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--gekumi-grid-gap);
}

.gekumi-facility-gallery figure {
  margin: 0;
}

.gekumi-facility-gallery figcaption {
  padding-block-start: var(--gekumi-space-2);
  color: var(--gekumi-color-text-subtle);
  font-size: var(--gekumi-font-size-body-small);
}

.gekumi-buyer-verification-status {
  display: flex;
  align-items: flex-start;
  gap: var(--gekumi-space-3);
  padding: var(--gekumi-space-4);
  border: var(--gekumi-border-width) solid var(--gekumi-color-border);
  border-radius: var(--gekumi-radius-button);
  background: var(--gekumi-color-surface);
}

.gekumi-mobile-product-action__status {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--gekumi-space-4);
}

.gekumi-mobile-product-action__status > div {
  display: grid;
  gap: var(--gekumi-space-1);
}

.gekumi-mobile-product-action__status strong {
  font-size: var(--gekumi-font-size-body-small);
  line-height: var(--gekumi-line-height-compact);
}

/* STEP 04E frozen homepage body. All additions stay inside the 04E boundary. */
/* Keep intrinsic grid/media height in normal flow inside Elementor's HTML host. */
.elementor .e-con:has(> .elementor-widget-html > .gekumi-home-core) { display: block; }

.gekumi-home-core {
  padding-block: clamp(var(--gekumi-space-16), 8vw, var(--gekumi-space-24));
  background: var(--gekumi-color-background);
  color: var(--gekumi-color-primary);
  font-family: var(--gekumi-font-latin);
  font-size: var(--gekumi-font-size-body);
  line-height: var(--gekumi-line-height-body);
  scroll-margin-block-start: 5rem;
}

.gekumi-home-core :is(h2, h3, p, dl, dd, figure) { margin: 0; }
.gekumi-home-core * { min-inline-size: 0; overflow-wrap: anywhere; }
.gekumi-home-core :is(h2, h3) {
  font-family: inherit;
  font-style: normal;
  font-weight: var(--gekumi-font-weight-semibold);
  line-height: var(--gekumi-line-height-heading);
  color: inherit;
}
.gekumi-home-core h2 { font-size: var(--gekumi-font-size-h2); }
.gekumi-home-core h3 { font-size: var(--gekumi-font-size-h4); }
.gekumi-home-core .gekumi-section-header { align-items: end; }
.gekumi-home-core .gekumi-section-header > .gekumi-button { flex: 0 0 auto; max-inline-size: 19rem; }
.gekumi-home-core .gekumi-button { min-block-size: var(--gekumi-space-12); font-family: inherit; }
.gekumi-home-core__kicker,
.gekumi-home-core__sku,
.gekumi-home-core__sample-warning {
  font-size: var(--gekumi-font-size-caption);
  font-weight: var(--gekumi-font-weight-semibold);
  line-height: var(--gekumi-line-height-compact);
  letter-spacing: var(--gekumi-letter-spacing-label);
}
.gekumi-home-core__kicker { color: var(--gekumi-color-secondary); }
.gekumi-home-core__lead {
  max-inline-size: 48rem;
  font-size: var(--gekumi-font-size-body-large);
  margin-block-end: var(--gekumi-space-8) !important;
}
.gekumi-home-core__development {
  display: flex;
  flex-wrap: wrap;
  gap: var(--gekumi-space-2) var(--gekumi-space-3);
  padding: var(--gekumi-space-3) var(--gekumi-space-4);
  border-inline-start: 3px solid var(--gekumi-color-warning);
  margin-block-end: var(--gekumi-space-6) !important;
  background: var(--gekumi-color-warning-soft);
  color: var(--gekumi-color-warning);
  font-size: var(--gekumi-font-size-caption);
}
.gekumi-home-core__availability-grid,
.gekumi-home-core__facility-grid,
.gekumi-home-core__news-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--gekumi-grid-gap);
}
.gekumi-home-core .gekumi-animal-card { display: flex; flex-direction: column; overflow: visible; }
.gekumi-home-core .gekumi-animal-card__media { border-radius: var(--gekumi-radius-card) var(--gekumi-radius-card) 0 0; }
.gekumi-home-core .gekumi-animal-card__body { flex: 1; gap: var(--gekumi-space-3); }
.gekumi-home-core .gekumi-animal-card__scientific { font-size: var(--gekumi-font-size-h4); }
.gekumi-home-core__status { align-self: start; width: fit-content; }
.gekumi-home-core__sku { color: var(--gekumi-color-text-subtle); font-variant-numeric: tabular-nums; }
.gekumi-home-core__common-name { color: var(--gekumi-color-secondary); }
.gekumi-home-core__animal-data { display: grid; gap: var(--gekumi-space-3); }
.gekumi-home-core__animal-data > div { display: grid; gap: var(--gekumi-space-1); }
.gekumi-home-core__animal-data dt { font-size: var(--gekumi-font-size-spec-label); color: var(--gekumi-color-text-subtle); }
.gekumi-home-core__animal-data dd { font-size: var(--gekumi-font-size-spec-value); line-height: var(--gekumi-line-height-compact); }
.gekumi-home-core__price {
  padding-block-start: var(--gekumi-space-4);
  margin-block-start: auto !important;
  border-block-start: 1px solid var(--gekumi-color-border);
  font-size: var(--gekumi-font-size-body-small);
  font-weight: var(--gekumi-font-weight-semibold);
}
.gekumi-home-core__animal-actions { display: grid; gap: var(--gekumi-space-3); }
.gekumi-home-core__placeholder {
  display: flex;
  min-block-size: 100%;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--gekumi-space-4);
  padding: var(--gekumi-space-6);
  aspect-ratio: 4 / 3;
  background: var(--gekumi-color-surface-alt);
  color: var(--gekumi-color-secondary);
}
.gekumi-home-core__image-mark {
  align-self: center;
  font-size: var(--gekumi-space-24);
  font-weight: var(--gekumi-font-weight-medium);
  line-height: 1;
  color: var(--gekumi-color-border);
}
.gekumi-home-core__species-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--gekumi-space-8) var(--gekumi-grid-gap); }
.gekumi-home-core__species {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  gap: var(--gekumi-space-6);
  align-items: center;
  padding-block-start: var(--gekumi-space-6);
  border-block-start: 1px solid var(--gekumi-color-secondary);
  grid-column: span 5;
}
.gekumi-home-core__species:nth-child(4n+1),
.gekumi-home-core__species:nth-child(4n) { grid-column: span 7; }
.gekumi-home-core__species-copy { display: grid; gap: var(--gekumi-space-4); }
.gekumi-home-core__species .gekumi-home-core__placeholder { inline-size: 100%; min-block-size: 15rem; aspect-ratio: auto; padding: var(--gekumi-space-4); }
.gekumi-home-core__species .gekumi-home-core__image-mark { font-size: var(--gekumi-space-16); }
.gekumi-home-compliance,
.gekumi-home-shipping,
.gekumi-home-insights { background: var(--gekumi-color-surface); }
.gekumi-home-core__country-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gekumi-grid-gap); }
.gekumi-home-core .gekumi-country-panel { display: grid; gap: var(--gekumi-space-6); overflow: visible; }
.gekumi-home-core__reviews { display: grid; gap: var(--gekumi-space-4); }
.gekumi-home-core__reviews > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--gekumi-space-3); align-items: start; padding-block-end: var(--gekumi-space-4); border-block-end: 1px solid var(--gekumi-color-border); }
.gekumi-home-core__reviews dt { font-size: var(--gekumi-font-size-body-small); font-weight: var(--gekumi-font-weight-medium); }
.gekumi-home-core__shipment-gate { padding: var(--gekumi-space-3); background: var(--gekumi-color-warning-soft); }
.gekumi-home-core__shipment-gate .gekumi-badge { border-color: var(--gekumi-color-warning); color: var(--gekumi-color-warning); }
.gekumi-home-trade-process { background: var(--gekumi-color-surface-alt); }
.gekumi-home-core__trade-steps,
.gekumi-home-core__shipping-steps { margin: 0; padding: 0; list-style: none; }
.gekumi-home-core__trade-steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--gekumi-grid-gap); }
.gekumi-home-core__trade-steps li { display: grid; gap: var(--gekumi-space-6); align-content: start; padding-block-start: var(--gekumi-space-6); border-block-start: 1px solid var(--gekumi-color-secondary); font-weight: var(--gekumi-font-weight-medium); }
.gekumi-home-core__step-number { font-size: var(--gekumi-font-size-h3); color: var(--gekumi-color-secondary); font-variant-numeric: tabular-nums; }
.gekumi-home-core__facility-grid figure { display: grid; gap: var(--gekumi-space-4); }
.gekumi-home-core__facility-grid .gekumi-home-core__placeholder { min-block-size: 0; border-radius: var(--gekumi-radius-media); }
.gekumi-home-core__shipping-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--gekumi-space-8); align-items: start; }
.gekumi-home-core__sample-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gekumi-space-4); }
.gekumi-home-core__sample { border: 1px solid var(--gekumi-color-border); border-radius: var(--gekumi-radius-button); }
.gekumi-home-core__sample summary { min-block-size: 12rem; padding: var(--gekumi-space-6); cursor: pointer; }
.gekumi-home-core__sample summary::marker { color: var(--gekumi-color-secondary); }
.gekumi-home-core__sample-warning { display: block; margin-block: var(--gekumi-space-2) var(--gekumi-space-4); color: var(--gekumi-color-warning); }
.gekumi-home-core__sample-title { font-weight: var(--gekumi-font-weight-semibold); }
.gekumi-home-core__sample-body { padding: var(--gekumi-space-6); border-block-start: 1px dashed var(--gekumi-color-border); font-size: var(--gekumi-font-size-body-small); }
.gekumi-home-core__sample-body dt { margin-block-start: var(--gekumi-space-4); font-weight: var(--gekumi-font-weight-semibold); }
.gekumi-home-core__shipping-process { display: grid; gap: var(--gekumi-space-6); }
.gekumi-home-core__shipping-steps { display: grid; gap: var(--gekumi-space-6); }
.gekumi-home-core__shipping-steps li { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: var(--gekumi-space-3); }
.gekumi-home-core__shipping-steps li > span:first-child { color: var(--gekumi-color-secondary); font-variant-numeric: tabular-nums; }
.gekumi-home-trade-cta { background: var(--gekumi-color-primary); color: var(--gekumi-color-inverse); }
.gekumi-home-trade-cta .gekumi-home-core__kicker { color: var(--gekumi-color-inverse); }
.gekumi-home-trade-cta .gekumi-section-header__copy { max-inline-size: 56rem; }
.gekumi-home-core__qualification { max-inline-size: 48rem; font-size: var(--gekumi-font-size-body-small); }
.gekumi-home-core__trade-actions { display: flex; flex-wrap: wrap; gap: var(--gekumi-space-4); margin-block-start: var(--gekumi-space-8); }
.gekumi-home-trade-cta .gekumi-button { background: var(--gekumi-color-accent); color: var(--gekumi-color-inverse); }
.gekumi-home-trade-cta .gekumi-button:hover { background: var(--gekumi-color-accent-strong); }
.gekumi-home-trade-cta .gekumi-button--secondary { background: transparent; border-color: var(--gekumi-color-inverse); }
.gekumi-home-trade-cta .gekumi-button--secondary:hover { background: var(--gekumi-color-secondary); }
.gekumi-home-core__news-grid article { display: grid; align-content: start; gap: var(--gekumi-space-6); padding-block: var(--gekumi-space-6); border-block-start: 1px solid var(--gekumi-color-secondary); }
.gekumi-home-core__news-grid h3 { line-height: var(--gekumi-line-height-compact); }
.gekumi-home-core__news-grid a { color: inherit; text-decoration: underline; text-underline-offset: .2em; }
.gekumi-home-core__news-grid a:hover { color: var(--gekumi-color-accent); }

/* STEP 04E Fix V1.1: preserve the active WoodMart footer background and layout. */
.wd-footer.footer-container {
  --wd-text-color: var(--gekumi-color-inverse);
  --wd-link-color: var(--gekumi-color-inverse);
  --wd-link-color-hover: var(--gekumi-color-inverse);
  color: var(--gekumi-color-inverse);
}
.wd-footer.footer-container :is(a, p, .gekumi-caption, .copyrights-wrapper) {
  color: var(--gekumi-color-inverse);
}
.whb-header .gekumi-language-placeholder { color: var(--gekumi-color-text-subtle); }
.gekumi-home-core__placeholder--pending .gekumi-home-core__image-mark { margin-block: auto; }
.gekumi-home-trade-cta > #wholesale { scroll-margin-block-start: 5rem; }
