/* Frozen 04F V1: shared public catalog / methodology system, never global shell CSS. */
.gekumi-04f {
  --g4f-white: #fff;
  --g4f-warm: #f4f1e9;
  --g4f-media: #ece8de;
  --g4f-ink: #222725;
  --g4f-green: #52685a;
  --g4f-accent: #b65345;
  --g4f-border: #d8d3c8;
  --g4f-muted: #5f655f;
  --g4f-gutter: 20px;
  --g4f-gap: 16px;
  --g4f-card-padding: 18px;
  --g4f-section-space: 52px;
  --g4f-h1: 34px;
  --g4f-h1-line: 38px;
  --g4f-h2: 28px;
  --g4f-h2-line: 34px;
  --g4f-h3: 20px;
  --g4f-h3-line: 27px;
  background: var(--g4f-white);
  color: var(--g4f-ink);
  font: 400 16px/26px Inter, "Noto Sans JP", "Noto Sans KR", system-ui, sans-serif;
  text-align: start;
  inline-size: 100%;
  min-inline-size: 0;
}
.gekumi-04f *, .gekumi-04f *::before, .gekumi-04f *::after { box-sizing: border-box; }
.gekumi-04f [hidden] { display: none !important; }
.gekumi-04f :where(h1, h2, h3, h4, p, ul, ol, dl, dd, figure, form) { margin: 0; }
.gekumi-04f :where(h1, h2, h3, h4) { color: var(--g4f-ink); font-family: inherit; font-weight: 600; letter-spacing: -.02em; text-transform: none; }
.gekumi-04f h1 { font-size: var(--g4f-h1); line-height: var(--g4f-h1-line); }
.gekumi-04f h2 { font-size: var(--g4f-h2); line-height: var(--g4f-h2-line); }
.gekumi-04f h3 { font-size: var(--g4f-h3); line-height: var(--g4f-h3-line); }
.gekumi-04f h4 { font-size: 18px; line-height: 26px; }
.gekumi-04f :where(p, h1, h2, h3, h4, dt, dd, a, button, label, legend, th, td, summary, span) { overflow-wrap: anywhere; }
.gekumi-04f :where(ul, ol) { padding-inline-start: 22px; }
.gekumi-04f :where(li + li) { margin-block-start: 8px; }
.gekumi-04f :where(img, svg) { max-inline-size: 100%; }
.gekumi-04f :where(a, button, input, select, summary) { -webkit-tap-highlight-color: transparent; }
.gekumi-04f a { color: var(--g4f-green); text-decoration: underline; text-underline-offset: 3px; display: inline-flex; align-items: center; min-inline-size: 44px; min-block-size: 44px; max-inline-size: 100%; }
.gekumi-04f a:hover { color: var(--g4f-ink); }
.gekumi-04f :where(button, input, select) { font: inherit; color: inherit; }
.gekumi-04f :where(button, select, summary) { cursor: pointer; }
.gekumi-04f :where(button, select) { text-transform: none; letter-spacing: normal; }
.gekumi-04f :focus-visible { outline: 3px solid var(--g4f-accent); outline-offset: 3px; box-shadow: none; }
/* Viewport-based width preserves the frozen 350/720/960px content boxes with Windows scrollbars. */
.gekumi-04f .g4f-container { inline-size: calc(100vw - 2 * var(--g4f-gutter)); max-inline-size: 1240px; margin-inline: auto; min-inline-size: 0; }
.gekumi-04f[data-spec-version="V1"] :is(.g4f-inner-hero, .g4f-section:not(.g4f-section--catalog), .g4f-related-cta) > .g4f-container { padding-inline: var(--g4f-card-padding); }
.gekumi-04f .g4f-section { padding-block: var(--g4f-section-space); }
.gekumi-04f .g4f-section--warm, .gekumi-04f .g4f-related-cta { background: var(--g4f-warm); }
.gekumi-04f .g4f-section--catalog { padding-block: 32px; }
.gekumi-04f .g4f-section-heading { max-inline-size: 720px; margin-block-end: 28px; }
.gekumi-04f .g4f-section-heading > * + * { margin-block-start: 12px; }
.gekumi-04f .g4f-section > .g4f-container > h2 + * { margin-block-start: 28px; }
.gekumi-04f .g4f-section > .g4f-container > .g4f-eyebrow + h2 { margin-block-start: 12px; }
.gekumi-04f .g4f-section > .g4f-container > * + p { margin-block-start: 20px; }
.gekumi-04f .g4f-section > .g4f-container > p { max-inline-size: 720px; }
.gekumi-04f .g4f-text-links { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 20px; }
.gekumi-04f .g4f-eyebrow { color: var(--g4f-green); font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: .1em; }
.gekumi-04f .g4f-inner-hero { background: var(--g4f-warm); min-block-size: 236px; padding-block: 40px; }
.gekumi-04f:is([data-page="live-geckos"], [data-page="availability"]) .g4f-inner-hero { min-block-size: 200px; padding-block: 32px; }
.gekumi-04f .g4f-breadcrumb { margin-block-end: 24px; font-size: 13px; line-height: 20px; color: var(--g4f-muted); }
.gekumi-04f .g4f-breadcrumb ol { display: flex; flex-wrap: wrap; align-items: center; gap: 0 10px; list-style: none; padding: 0; }
.gekumi-04f .g4f-breadcrumb li { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 0; min-inline-size: 0; }
.gekumi-04f .g4f-hero-grid { display: grid; gap: 28px; }
.gekumi-04f .g4f-hero-copy, .gekumi-04f .g4f-hero-context { min-inline-size: 0; }
.gekumi-04f .g4f-hero-copy > * + * { margin-block-start: 16px; }
.gekumi-04f .g4f-hero-copy > p:not(.g4f-eyebrow) { max-inline-size: 720px; font-size: 16px; line-height: 25px; }
.gekumi-04f .g4f-hero-context { align-self: center; padding: var(--g4f-card-padding); border-inline-start: 2px solid var(--g4f-border); }
.gekumi-04f .g4f-hero-context > * + * { margin-block-start: 16px; }
.gekumi-04f .g4f-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; }
.gekumi-04f .g4f-actions > .g4f-button { inline-size: 100%; }
.gekumi-04f .g4f-button { display: inline-flex; justify-content: center; align-items: center; gap: 8px; min-inline-size: 44px; min-block-size: 44px; max-inline-size: 100%; padding: 12px 18px; border: 1px solid var(--g4f-ink); border-radius: 6px; background: transparent; color: var(--g4f-ink); font-size: 14px; line-height: 20px; font-weight: 600; white-space: normal; text-align: center; text-decoration: none; box-shadow: none; }
.gekumi-04f .g4f-button:hover { background: var(--g4f-media); color: var(--g4f-ink); }
.gekumi-04f .g4f-button--primary { background: var(--g4f-accent); border-color: var(--g4f-accent); color: var(--g4f-white); }
.gekumi-04f .g4f-button--record { background: var(--g4f-ink); color: var(--g4f-white); }
.gekumi-04f :is(.g4f-button--primary, .g4f-button--record):hover { background: var(--g4f-ink); border-color: var(--g4f-ink); color: var(--g4f-white); }
.gekumi-04f :is(.g4f-button--primary, .g4f-button--record):focus-visible { outline-color: var(--g4f-white); outline-offset: -6px; box-shadow: 0 0 0 3px var(--g4f-ink); }
.gekumi-04f .g4f-notice { padding: var(--g4f-card-padding); border: 1px solid var(--g4f-border); border-inline-start: 3px solid var(--g4f-accent); border-radius: 6px; background: var(--g4f-warm); }
.gekumi-04f .g4f-notice > * + * { margin-block-start: 10px; }
.gekumi-04f .g4f-notice h2 { font-size: 20px; line-height: 28px; }
.gekumi-04f .g4f-notice p { max-inline-size: 960px; }
.gekumi-04f .g4f-development-notice { margin-block-end: 28px; }
.gekumi-04f .g4f-status { display: inline-flex; align-items: flex-start; gap: 6px; max-inline-size: 100%; min-block-size: 30px; padding: 5px 8px; background: var(--g4f-warm); color: var(--g4f-ink); border: 1px solid var(--g4f-border); border-radius: 4px; font-size: 13px; line-height: 19px; font-weight: 500; white-space: normal; }
.gekumi-04f .g4f-status-icon { display: inline-flex; flex: 0 0 16px; inline-size: 16px; block-size: 18px; align-items: center; justify-content: center; color: var(--g4f-green); }
.gekumi-04f .g4f-status-icon svg { inline-size: 16px; block-size: 16px; }
.gekumi-04f .g4f-status > span:not(.g4f-status-icon) { min-inline-size: 0; }
.gekumi-04f .g4f-catalog-layout { display: grid; gap: 24px; align-items: start; }
.gekumi-04f .g4f-results { min-inline-size: 0; }
.gekumi-04f .g4f-results-heading { margin-block-end: 20px; }
.gekumi-04f .g4f-toolbar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-items: end; margin-block-end: 18px; }
.gekumi-04f [data-results-count] { grid-column: 1 / -1; grid-row: 1; align-self: center; color: var(--g4f-muted); font-size: 14px; line-height: 20px; }
.gekumi-04f .g4f-filter-trigger { inline-size: 100%; }
.gekumi-04f .g4f-sort { display: flex; flex-direction: column; gap: 6px; min-inline-size: 0; font-size: 14px; line-height: 20px; }
.gekumi-04f .g4f-sort select { inline-size: 100%; min-inline-size: 0; min-block-size: 44px; block-size: auto; padding: 10px 26px 10px 10px; border: 1px solid var(--g4f-border); border-radius: 4px; background-color: var(--g4f-white); font-size: 14px; line-height: 20px; }
.gekumi-04f .g4f-sort--enhanced { display: grid; grid-template-columns: minmax(0, 1fr); }
.gekumi-04f .g4f-sort--enhanced select { grid-column: 1; grid-row: 2; block-size: 100%; opacity: 0; z-index: 1; }
.gekumi-04f .g4f-sort-value { position: relative; grid-column: 1; grid-row: 2; display: flex; align-items: center; min-block-size: 44px; padding: 10px 28px 10px 10px; border: 1px solid var(--g4f-border); border-radius: 4px; background: var(--g4f-white); white-space: normal; }
.gekumi-04f .g4f-sort-value::after { content: "⌄"; position: absolute; inset-inline-end: 10px; inset-block-start: 50%; translate: 0 -50%; }
.gekumi-04f .g4f-sort--enhanced select:focus-visible + .g4f-sort-value { outline: 3px solid var(--g4f-accent); outline-offset: 3px; }
.gekumi-04f .g4f-applied-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-block-end: 20px; }
.gekumi-04f .g4f-applied-filters:empty { margin: 0; }
.gekumi-04f .g4f-filter-chip { display: inline-flex; align-items: center; gap: 8px; min-inline-size: 44px; min-block-size: 44px; max-inline-size: 100%; padding: 8px 12px; border: 1px solid var(--g4f-border); border-radius: 4px; background: var(--g4f-warm); font-size: 13px; line-height: 20px; white-space: normal; text-align: start; }
.gekumi-04f .g4f-filter-host { display: none; min-inline-size: 0; border: 1px solid var(--g4f-border); border-radius: 8px; background: var(--g4f-white); }
.gekumi-04f .g4f-filter-form { min-inline-size: 0; }
.gekumi-04f .g4f-filter-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px 18px; border-block-end: 1px solid var(--g4f-border); }
.gekumi-04f .g4f-filter-heading h2 { font-size: 20px; line-height: 28px; }
.gekumi-04f .g4f-filter-heading [data-action="close-filters"] { flex: 0 0 44px; min-inline-size: 44px; min-block-size: 44px; padding: 8px; border: 1px solid var(--g4f-border); border-radius: 4px; background: var(--g4f-white); font-size: 22px; }
.gekumi-04f .g4f-filter-fields { padding: 0 18px; }
.gekumi-04f .g4f-filter-group { min-inline-size: 0; padding: 18px 0; margin: 0; border: 0; border-block-end: 1px solid var(--g4f-border); }
.gekumi-04f .g4f-filter-group:last-child { border-block-end: 0; }
.gekumi-04f .g4f-filter-group legend { float: none; inline-size: 100%; padding: 0; margin-block-end: 8px; font-size: 14px; line-height: 20px; font-weight: 600; }
.gekumi-04f .g4f-filter-option { display: flex; align-items: flex-start; gap: 8px; min-block-size: 44px; padding-block: 11px; margin: 0; cursor: pointer; font-size: 14px; line-height: 20px; }
.gekumi-04f .g4f-filter-option input { flex: 0 0 18px; appearance: auto; inline-size: 18px; block-size: 18px; min-block-size: 0; margin: 1px 0 0; accent-color: var(--g4f-green); }
.gekumi-04f .g4f-filter-option span { min-inline-size: 0; }
.gekumi-04f .g4f-filter-actions { display: flex; flex-wrap: wrap; gap: 8px; padding: 16px 18px; border-block-start: 1px solid var(--g4f-border); background: var(--g4f-white); }
.gekumi-04f .g4f-filter-actions > * { flex: 1 1 100%; }
.gekumi-04f .g4f-filter-dialog { position: fixed; inset: auto 0 0; inline-size: 100%; max-inline-size: 100%; block-size: 88dvh; max-block-size: 88dvh; padding: 0; margin: 0; border: 1px solid var(--g4f-border); border-radius: 16px 16px 0 0; background: var(--g4f-white); color: var(--g4f-ink); overflow: hidden; }
.gekumi-04f .g4f-filter-dialog::backdrop { background: rgb(34 39 37 / 48%); }
.gekumi-04f .g4f-filter-dialog [data-filter-form-dialog] { block-size: 100%; min-block-size: 0; }
.gekumi-04f .g4f-filter-dialog .g4f-filter-form { display: flex; flex-direction: column; block-size: 100%; min-block-size: 0; }
.gekumi-04f .g4f-filter-dialog .g4f-filter-heading, .gekumi-04f .g4f-filter-dialog .g4f-filter-actions { flex-shrink: 0; }
.gekumi-04f .g4f-filter-dialog .g4f-filter-fields { flex: 1 1 auto; min-block-size: 0; overflow-y: auto; overscroll-behavior: contain; }
.gekumi-04f .g4f-filter-dialog .g4f-filter-actions { padding-block-end: max(16px, env(safe-area-inset-bottom)); }
.gekumi-04f .g4f-filter-dialog .g4f-filter-actions > * { flex-basis: calc(50% - 4px); }
html.g4f-filter-open { overflow: hidden; }
.gekumi-04f .g4f-animal-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
.gekumi-04f .g4f-animal-card { display: flex; flex-direction: column; min-inline-size: 0; margin: 0; border: 1px solid var(--g4f-border); border-radius: 12px; background: var(--g4f-white); }
.gekumi-04f .g4f-animal-media { aspect-ratio: 4 / 3; inline-size: 100%; overflow: hidden; border-radius: 11px 11px 0 0; background: var(--g4f-media); }
.gekumi-04f .g4f-animal-media img { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; object-position: center; }
.gekumi-04f .g4f-image-pending { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 12px; inline-size: 100%; block-size: 100%; padding: 12px; background: var(--g4f-media); color: var(--g4f-muted); text-align: center; font-size: 14px; line-height: 20px; }
.gekumi-04f .g4f-image-mark { color: var(--g4f-green); font-size: 44px; line-height: 48px; font-weight: 500; }
.gekumi-04f .g4f-card-body { display: flex; flex-direction: column; flex: 1; gap: 12px; padding: var(--g4f-card-padding); min-inline-size: 0; }
.gekumi-04f .g4f-representative { color: var(--g4f-muted); font-size: 12px; line-height: 18px; font-weight: 600; }
.gekumi-04f .g4f-sku { color: var(--g4f-muted); font-size: 13px; line-height: 20px; font-variant-numeric: tabular-nums; letter-spacing: .035em; }
.gekumi-04f .g4f-scientific { font-style: italic; }
.gekumi-04f .g4f-common-name { font-size: 15px; line-height: 22px; }
.gekumi-04f .g4f-animal-data { display: grid; gap: 10px; padding-block: 12px; border-block: 1px solid var(--g4f-border); }
.gekumi-04f .g4f-data-row { display: grid; min-inline-size: 0; gap: 4px; }
.gekumi-04f .g4f-data-row dt { color: var(--g4f-muted); font-size: 13px; line-height: 20px; font-weight: 400; }
.gekumi-04f .g4f-data-row dd { min-inline-size: 0; font-size: 14px; line-height: 20px; }
.gekumi-04f .g4f-market-status { display: grid; gap: 6px; min-inline-size: 0; }
.gekumi-04f .g4f-market-status > :first-child:not(.g4f-status) { font-size: 13px; line-height: 20px; color: var(--g4f-muted); }
.gekumi-04f .g4f-trade-price { font-size: 14px; line-height: 22px; padding-block: 6px; }
.gekumi-04f .g4f-card-actions { display: flex; flex-direction: column; gap: 10px; margin-block-start: auto; padding-block-start: 6px; }
.gekumi-04f .g4f-card-actions .g4f-button { inline-size: 100%; min-block-size: 48px; }
.gekumi-04f .g4f-empty-state { padding: 32px var(--g4f-card-padding); border: 1px solid var(--g4f-border); border-radius: 8px; background: var(--g4f-warm); }
.gekumi-04f .g4f-empty-state > * + * { margin-block-start: 16px; }
.gekumi-04f .g4f-related-cta { padding-block: var(--g4f-section-space); }
.gekumi-04f .g4f-related-cta .g4f-container { display: grid; gap: 24px; }
.gekumi-04f .g4f-cta-copy { max-inline-size: 720px; }
.gekumi-04f .g4f-cta-copy > * + * { margin-block-start: 12px; }

/* Current Availability uses the same records and facets as the visual catalog. */
.gekumi-04f .g4f-public-trade-view { margin-block-end: 32px; }
.gekumi-04f .g4f-availability-filters { margin-block-end: 24px; }
.gekumi-04f .g4f-availability-cards { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
.gekumi-04f .g4f-availability-card { display: flex; flex-direction: column; gap: 18px; min-inline-size: 0; padding: var(--g4f-card-padding); border: 1px solid var(--g4f-border); border-radius: 12px; background: var(--g4f-white); }
.gekumi-04f .g4f-record-header { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 12px; align-items: start; }
.gekumi-04f .g4f-record-thumbnail { inline-size: 88px; block-size: 66px; border-radius: 6px; overflow: hidden; background: var(--g4f-media); }
.gekumi-04f .g4f-record-thumbnail img { inline-size: 100%; block-size: 100%; object-fit: cover; }
.gekumi-04f .g4f-record-identity { display: grid; gap: 6px; min-inline-size: 0; }
.gekumi-04f .g4f-image-pending--thumbnail { padding: 4px; gap: 2px; }
.gekumi-04f .g4f-image-pending--thumbnail .g4f-image-mark { font-size: 18px; line-height: 20px; }
.gekumi-04f .g4f-image-pending--thumbnail .g4f-image-label { font-size: 10px; line-height: 11px; }
.gekumi-04f .g4f-availability-data { display: grid; gap: 16px; padding-block: 18px; border-block: 1px solid var(--g4f-border); }
.gekumi-04f .g4f-availability-data .g4f-data-row { grid-template-columns: 38% minmax(0, 1fr); gap: 8px; }
.gekumi-04f .g4f-market-statuses { display: grid; gap: 14px; }
.gekumi-04f .g4f-record-footer { display: grid; gap: 12px; margin-block-start: auto; padding-block-start: 18px; border-block-start: 1px solid var(--g4f-border); }
.gekumi-04f .g4f-availability-table-wrap { display: none; }
.gekumi-04f .g4f-availability-table { inline-size: 100%; table-layout: fixed; border-collapse: collapse; margin: 0; color: var(--g4f-ink); font-size: 14px; line-height: 20px; }
.gekumi-04f .g4f-availability-table caption { caption-side: top; text-align: start; color: var(--g4f-muted); padding-block-end: 16px; font-size: 14px; line-height: 22px; }
.gekumi-04f .g4f-availability-table :is(th, td) { padding: 16px 12px; border: 0; border-block-end: 1px solid var(--g4f-border); vertical-align: top; text-align: start; white-space: normal; font-size: 14px; line-height: 20px; font-weight: 400; }
.gekumi-04f .g4f-availability-table thead th { padding-block: 14px; background: var(--g4f-warm); font-weight: 600; }
.gekumi-04f .g4f-availability-table tbody tr { block-size: 112px; background: var(--g4f-white); }
.gekumi-04f .g4f-availability-table tbody :is(th, td) > * + * { margin-block-start: 8px; }
.gekumi-04f .g4f-availability-table .g4f-record-thumbnail { inline-size: 72px; block-size: 54px; }
.gekumi-04f .g4f-availability-table .g4f-scientific { font-size: 15px; line-height: 22px; font-weight: 600; }
.gekumi-04f .g4f-availability-table .g4f-common-name { font-size: 13px; line-height: 20px; }
.gekumi-04f .g4f-availability-table .g4f-status { padding-inline: 6px; font-size: 12px; line-height: 18px; }
.gekumi-04f .g4f-availability-table .g4f-trade-price { padding-block: 4px; line-height: 20px; }
.gekumi-04f .g4f-availability-table .g4f-button { inline-size: 100%; min-block-size: 48px; padding-inline: 10px; }
.gekumi-04f .g4f-table-details { display: grid; gap: 8px; }
.gekumi-04f .g4f-table-details dt { color: var(--g4f-muted); font-size: 12px; line-height: 18px; }
.gekumi-04f .g4f-table-details dd { font-size: 13px; line-height: 20px; }
.gekumi-04f .g4f-col-record { inline-size: 12%; }
.gekumi-04f .g4f-col-taxon { inline-size: 15%; }
.gekumi-04f .g4f-col-morph { inline-size: 8%; }
.gekumi-04f .g4f-col-details { inline-size: 11%; }
.gekumi-04f .g4f-col-japan { inline-size: 14%; }
.gekumi-04f .g4f-col-korea { inline-size: 17%; }
.gekumi-04f .g4f-col-trade { inline-size: 13%; }
.gekumi-04f .g4f-col-action { inline-size: 10%; }

/* Compliance method and market guides share semantic panels, not image infographics. */
.gekumi-04f :is(.g4f-principle, .g4f-dual-gate, .g4f-method-grid, .g4f-review-gates, .g4f-country-grid, .g4f-overview-grid, .g4f-review-columns, .g4f-evidence-grid, .g4f-buyer-gate, .g4f-responsibility-matrix, .g4f-dossier) { display: grid; gap: var(--g4f-gap); min-inline-size: 0; }
.gekumi-04f :is(.g4f-principle-panel, .g4f-method-step, .g4f-country-panel, .g4f-overview-card, .g4f-evidence-card, .g4f-responsibility-column) { padding: var(--g4f-card-padding); min-inline-size: 0; border: 1px solid var(--g4f-border); border-radius: 8px; background: var(--g4f-white); }
.gekumi-04f :is(.g4f-principle-panel, .g4f-method-step, .g4f-country-panel, .g4f-overview-card, .g4f-evidence-card, .g4f-responsibility-column) > * + * { margin-block-start: 14px; }
.gekumi-04f :is(.g4f-principle-panel, .g4f-overview-card) { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.gekumi-04f :is(.g4f-principle-panel, .g4f-overview-card) > * + * { margin-block-start: 0; }
.gekumi-04f :is(.g4f-principle-panel, .g4f-overview-card) > .g4f-status { margin-block-start: auto; }
.gekumi-04f .g4f-relationship { align-self: center; justify-self: center; padding: 4px 8px; color: var(--g4f-green); font-size: 14px; line-height: 20px; font-weight: 600; text-align: center; }
.gekumi-04f :is(.g4f-method-grid, .g4f-review-gates) { list-style: none; padding: 0; }
.gekumi-04f :is(.g4f-method-grid, .g4f-review-gates) > li { margin: 0; }
.gekumi-04f .g4f-method-step { display: flex; flex-direction: column; align-items: flex-start; }
.gekumi-04f .g4f-method-step .g4f-status { margin-block-start: auto; }
.gekumi-04f .g4f-method-step p { margin-block-end: 16px; }
.gekumi-04f .g4f-step-number, .gekumi-04f .g4f-index { display: inline-flex; min-inline-size: 36px; min-block-size: 36px; align-items: center; justify-content: center; border: 1px solid var(--g4f-border); border-radius: 50%; color: var(--g4f-green); font-size: 14px; line-height: 20px; font-variant-numeric: tabular-nums; }
.gekumi-04f .g4f-country-panel { display: flex; flex-direction: column; align-items: flex-start; }
.gekumi-04f .g4f-country-panel .g4f-button { margin-block-start: 20px; }
.gekumi-04f .g4f-country-panel .g4f-status { margin-block-start: auto; }
.gekumi-04f .g4f-country-panel ul { margin-block-end: 20px; }
.gekumi-04f .g4f-market-marker { color: var(--g4f-green); font-size: 44px; line-height: 48px; font-weight: 500; letter-spacing: .03em; }
.gekumi-04f .g4f-review-columns > div, .gekumi-04f .g4f-evidence-grid > article { min-inline-size: 0; }
.gekumi-04f .g4f-review-columns > div > * + * { margin-block-start: 16px; }
.gekumi-04f .g4f-review-columns + .g4f-status { margin-block-start: 20px; }
.gekumi-04f .g4f-buyer-gate { padding: var(--g4f-card-padding); border: 1px solid var(--g4f-border); border-inline-start: 3px solid var(--g4f-green); border-radius: 8px; background: var(--g4f-warm); }
.gekumi-04f .g4f-buyer-gate-intro, .gekumi-04f .g4f-buyer-gate-details, .gekumi-04f .g4f-dossier-heading, .gekumi-04f .g4f-dossier-body { min-inline-size: 0; }
.gekumi-04f :is(.g4f-buyer-gate-intro, .g4f-buyer-gate-details, .g4f-dossier-heading, .g4f-dossier-body) > * + * { margin-block-start: 18px; }
.gekumi-04f .g4f-dossier { padding-block-start: 24px; border-block-start: 1px solid var(--g4f-border); }
.gekumi-04f .g4f-advisory { padding: var(--g4f-card-padding); border: 1px solid var(--g4f-border); border-inline-start: 3px solid var(--g4f-accent); border-radius: 6px; background: var(--g4f-warm); }
.gekumi-04f .g4f-advisory > * + * { margin-block-start: 14px; }
.gekumi-04f .g4f-review-rows { display: grid; gap: 16px; }
.gekumi-04f .g4f-review-row { min-inline-size: 0; padding: var(--g4f-card-padding); border: 1px solid var(--g4f-border); border-radius: 8px; background: var(--g4f-white); }
.gekumi-04f .g4f-review-row-data { display: grid; gap: 14px; margin-block-start: 18px; }
.gekumi-04f .g4f-review-row-data .g4f-data-row { min-inline-size: 0; }
.gekumi-04f .g4f-faq { max-inline-size: 960px; }
.gekumi-04f .g4f-accordion { border-block-end: 1px solid var(--g4f-border); }
.gekumi-04f .g4f-accordion:first-child { border-block-start: 1px solid var(--g4f-border); }
.gekumi-04f .g4f-accordion summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-block-size: 52px; padding: 16px 4px; color: var(--g4f-ink); font-size: 16px; line-height: 24px; font-weight: 600; list-style: none; }
.gekumi-04f .g4f-accordion summary::-webkit-details-marker { display: none; }
.gekumi-04f .g4f-accordion-icon { flex: 0 0 24px; text-align: center; font-size: 24px; line-height: 24px; }
.gekumi-04f .g4f-accordion[open] .g4f-accordion-icon { rotate: 45deg; }
.gekumi-04f .g4f-accordion-content { max-inline-size: 720px; padding: 0 4px 20px; }
.gekumi-04f .g4f-source-note { max-inline-size: 720px; color: var(--g4f-muted); font-size: 13px; line-height: 20px; }
.gekumi-04f .g4f-advisory-meta { display: grid; gap: 14px; }
.gekumi-04f .g4f-baseline-names { padding-inline-start: 18px; font-size: 14px; line-height: 22px; }
.gekumi-04f[data-page="compliance"] :is(.g4f-hero-copy > .g4f-lead, .g4f-country-grid > .g4f-country-panel:first-child > h3 + p, .g4f-review-gates + p) { text-wrap: pretty; }

@media (min-width: 768px) {
  .gekumi-04f { --g4f-gutter: 24px; --g4f-gap: 20px; --g4f-card-padding: 20px; --g4f-section-space: 68px; --g4f-h1: 40px; --g4f-h1-line: 44px; --g4f-h2: 30px; --g4f-h2-line: 36px; --g4f-h3: 21px; --g4f-h3-line: 28px; }
  .gekumi-04f .g4f-inner-hero { min-block-size: 252px; padding-block: 48px; }
  .gekumi-04f:is([data-page="live-geckos"], [data-page="availability"]) .g4f-inner-hero { min-block-size: 220px; padding-block: 40px; }
  .gekumi-04f .g4f-breadcrumb { font-size: 14px; }
  .gekumi-04f .g4f-hero-copy > p:not(.g4f-eyebrow) { font-size: 17px; line-height: 27px; }
  .gekumi-04f .g4f-actions > .g4f-button { inline-size: auto; }
  .gekumi-04f .g4f-toolbar { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .gekumi-04f [data-results-count] { grid-row: 2; }
  .gekumi-04f .g4f-animal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .gekumi-04f .g4f-animal-card .g4f-scientific { min-block-size: calc(2 * var(--g4f-h3-line)); }
  .gekumi-04f .g4f-animal-data .g4f-data-row { grid-template-columns: 38% minmax(0, 1fr); gap: 8px; }
  .gekumi-04f .g4f-filter-dialog { inset: 0 0 0 auto; inline-size: 420px; block-size: 100dvh; max-block-size: 100dvh; border-radius: 0; }
  .gekumi-04f .g4f-section--catalog { padding-block: 40px; }
  .gekumi-04f .g4f-record-header { grid-template-columns: 128px minmax(0, 1fr); gap: 20px; }
  .gekumi-04f .g4f-record-thumbnail { inline-size: 128px; block-size: 96px; }
  .gekumi-04f .g4f-availability-data { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gekumi-04f .g4f-availability-data .g4f-data-row { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .gekumi-04f .g4f-market-statuses { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gekumi-04f :is(.g4f-method-grid, .g4f-country-grid, .g4f-overview-grid) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .gekumi-04f { --g4f-gutter: 32px; --g4f-gap: 24px; --g4f-card-padding: 22px; --g4f-section-space: 80px; --g4f-h1: 44px; --g4f-h1-line: 48px; --g4f-h2: 34px; --g4f-h2-line: 41px; --g4f-h3: 22px; --g4f-h3-line: 29px; }
  .gekumi-04f .g4f-inner-hero { min-block-size: 280px; padding-block: 56px; }
  .gekumi-04f:is([data-page="live-geckos"], [data-page="availability"]) .g4f-inner-hero { min-block-size: 236px; padding-block: 48px; }
  .gekumi-04f .g4f-hero-grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 32px; }
  .gekumi-04f .g4f-hero-copy > p:not(.g4f-eyebrow) { font-size: 18px; line-height: 29px; }
  .gekumi-04f .g4f-catalog-layout { grid-template-columns: 224px minmax(0, 1fr); gap: 24px; }
  .gekumi-04f .g4f-filter-host { display: block; }
  .gekumi-04f .g4f-filter-host [data-action="close-filters"] { display: none; }
  .gekumi-04f[data-page="live-geckos"] .g4f-filter-trigger { display: none; }
  .gekumi-04f .g4f-toolbar { grid-template-columns: minmax(0, 1fr) minmax(220px, .75fr); }
  .gekumi-04f [data-results-count] { grid-column: auto; grid-row: auto; }
  .gekumi-04f .g4f-animal-grid { gap: 24px; }
  .gekumi-04f .g4f-section--catalog { padding-block: 48px; }
  .gekumi-04f .g4f-hero-copy:only-child { grid-column: 1 / -1; }
  .gekumi-04f[data-page="availability"] .g4f-toolbar { grid-template-columns: minmax(0, 1fr) 180px minmax(220px, .6fr); }
  .gekumi-04f .g4f-availability-filters .g4f-filter-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 24px; }
  .gekumi-04f .g4f-availability-filters .g4f-filter-actions { justify-content: flex-end; }
  .gekumi-04f .g4f-availability-filters .g4f-filter-actions > * { flex: 0 1 auto; }
  .gekumi-04f .g4f-availability-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .gekumi-04f .g4f-record-header { grid-template-columns: 96px minmax(0, 1fr); gap: 16px; }
  .gekumi-04f .g4f-record-thumbnail { inline-size: 96px; block-size: 72px; }
  .gekumi-04f .g4f-market-statuses { grid-template-columns: minmax(0, 1fr); }
  .gekumi-04f .g4f-principle { grid-template-columns: minmax(0, 1fr) 100px minmax(0, 1fr); }
  .gekumi-04f[data-page="korea"] .g4f-dual-gate { grid-template-columns: minmax(0, 1fr) max-content minmax(0, 1fr) max-content minmax(0, 1fr); gap: 16px; }
  .gekumi-04f[data-page="korea"] .g4f-dual-gate > .g4f-relationship { white-space: nowrap; overflow-wrap: normal; word-break: keep-all; }
  .gekumi-04f .g4f-review-gates { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gekumi-04f .g4f-review-gates .g4f-method-step > h3 { min-block-size: calc(2 * var(--g4f-h3-line)); }
  .gekumi-04f :is(.g4f-review-columns, .g4f-evidence-grid, .g4f-responsibility-matrix) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gekumi-04f :is(.g4f-dossier, .g4f-buyer-gate) { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); }
  .gekumi-04f .g4f-review-row-data { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr) minmax(0, 3fr) minmax(0, 4fr); gap: 20px; }
  .gekumi-04f .g4f-review-row { border-radius: 4px; }
  .gekumi-04f .g4f-public-trade-view { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
  .gekumi-04f .g4f-public-trade-view .g4f-buyer-gate-details { align-self: center; }
}
@media (min-width: 1280px) {
  .gekumi-04f[data-spec-version="V1"] { inline-size: 1240px; max-inline-size: calc(100vw - 2 * var(--g4f-gutter)); position: relative; inset-inline-start: 50%; translate: -50% 0; }
}
@media (min-width: 1440px) {
  .gekumi-04f { --g4f-card-padding: 24px; --g4f-section-space: 92px; --g4f-h1: 48px; --g4f-h1-line: 52px; --g4f-h2: 36px; --g4f-h2-line: 43px; --g4f-h3: 24px; --g4f-h3-line: 31px; inline-size: 1240px; max-inline-size: calc(100vw - 2 * var(--g4f-gutter)); position: relative; inset-inline-start: 50%; translate: -50% 0; }
  .gekumi-04f .g4f-inner-hero { min-block-size: 304px; padding-block: 64px; }
  .gekumi-04f:is([data-page="live-geckos"], [data-page="availability"]) .g4f-inner-hero { min-block-size: 248px; padding-block: 52px; }
  .gekumi-04f .g4f-hero-copy > p:not(.g4f-eyebrow) { line-height: 30px; }
  .gekumi-04f .g4f-catalog-layout { grid-template-columns: 260px minmax(0, 1fr); gap: 32px; }
  .gekumi-04f .g4f-animal-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gekumi-04f .g4f-availability-filters .g4f-filter-fields { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .gekumi-04f .g4f-availability-table-wrap { display: block; }
  .gekumi-04f .g4f-availability-cards { display: none; }
  .gekumi-04f[data-page="availability"] .g4f-col-taxon { inline-size: 14%; }
  .gekumi-04f[data-page="availability"] .g4f-col-morph { inline-size: 10%; }
  .gekumi-04f[data-page="availability"] .g4f-col-details { inline-size: 10%; }
  .gekumi-04f[data-page="availability"] .g4f-availability-table tbody td:nth-child(3) { white-space: nowrap; overflow-wrap: normal; word-break: normal; }
  .gekumi-04f :is(.g4f-method-grid, .g4f-overview-grid) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .gekumi-04f[data-page="japan"] .g4f-overview-card h3 { font-size: 22px; line-height: 29px; }
  .gekumi-04f .g4f-buyer-gate { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
  .gekumi-04f .g4f-public-trade-view { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
}
@media (prefers-reduced-motion: reduce) {
  .gekumi-04f, .gekumi-04f * { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
