/* rdo register: /{category}/ and /{category}/{child}/.
   Breakpoints: ≥1100 filters | table | preview · 700–1099 filters | table · <700 list + filter sheet. */

.rdo-register {
	--line: rgba(42, 59, 40, 0.14);
	--line-strong: var(--wakatake);
	--hover: rgba(42, 59, 40, 0.05);
	--muted: rgba(42, 59, 40, 0.68);
	padding-top: 56px;
	padding-bottom: 96px;
}

/* ---------- heading + counters ---------- */

.rdo-reg-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px;
}

.rdo-reg-title {
	margin: 0;
	font-family: var(--font-title);
	font-weight: var(--font-title-weight);
	font-style: var(--font-title-style);
	font-size: clamp(44px, 6vw, 72px);
	line-height: 1.05;
	letter-spacing: 0;
	overflow-wrap: anywhere;
}

/* ---------- sub-section nav ---------- */

.rdo-subnav { margin-top: 36px; }
.rdo-subnav ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 28px;
	overflow-x: auto;
	scrollbar-width: none;
}
.rdo-subnav ul::-webkit-scrollbar { display: none; }
.rdo-subnav a {
	display: inline-block;
	padding: 4px 0 10px;
	border-bottom: 1px solid transparent;
	color: var(--seokchung);
	font-size: 16px;
	white-space: nowrap;
}
.rdo-subnav a:hover { color: var(--wakatake); }
.rdo-subnav a[aria-current="page"] {
	color: var(--wakatake);
	border-bottom-color: var(--wakatake);
}

/* ---------- layout ---------- */

.rdo-reg-layout {
	display: grid;
	grid-template-columns: 170px minmax(0, 1fr);
	gap: 32px;
	margin-top: 36px;
	align-items: start;
}
.rdo-preview { display: none; }

@media (min-width: 1100px) {
	.rdo-reg-layout { grid-template-columns: 170px minmax(0, 1fr) 250px; }
	.rdo-preview { display: block; position: sticky; top: 24px; }
	.rdo-preview[hidden] { display: none; }
}

/* ---------- filters ---------- */

.rdo-group { margin: 0 0 28px; }
.rdo-group__label {
	margin: 0 0 12px;
	padding-bottom: 6px;
	border-bottom: 1px solid var(--line);
	font-size: 13px;
	color: var(--muted);
}
.rdo-sheet-close,
.rdo-filter-btn,
.rdo-sortbtn,
.rdo-sort {
	font: inherit;
	color: inherit;
	letter-spacing: inherit;
	cursor: pointer;
}

/* ---------- toolbar (filter sheet button, sort button) ---------- */

.rdo-toolbar {
	display: none;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--line-strong);
}
.rdo-filter-btn,
.rdo-sortbtn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	padding: 0;
	border: 0;
	background: none;
	font-size: 15px;
}
.rdo-filter-btn { display: none; } /* mobile only, and only with JS */
.rdo-sortbtn-form { margin-left: auto; }

/* Contact sheet on desktop: no column headers, so the sort button shows. */
.rdo-register[data-view="sheet"] .rdo-toolbar { display: flex; }

/* ---------- register (table) ---------- */

.rdo-row {
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr) 110px 44px 80px 64px;
	column-gap: 12px;
	align-items: baseline;
}
.rdo-row .rdo-rec__thumb,
.rdo-rec__spec { display: none; }

/* Maker page: no maker column. */
.rdo-reg-layout--nomaker .rdo-row { grid-template-columns: 64px minmax(0, 1fr) 44px 80px 64px; }

/* Visually hidden, still read as table cells (mobile and contact sheet show .rdo-rec__spec). */
.rdo-register[data-view="sheet"] .rdo-cell--size,
.rdo-register[data-view="sheet"] .rdo-cell--ruling {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.rdo-row--head {
	padding-bottom: 10px;
	border-bottom: 1px solid var(--line-strong);
	font-size: 13px;
	color: var(--muted);
}
.rdo-row--head form { margin: 0; }
/* Grouped lists (maker page): column headers are visible once; later tables
   keep theirs for screen readers only. */
.rdo-table__head--repeat {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}
.rdo-sort {
	padding: 6px 0;
	margin: -6px 0;
	border: 0;
	background: none;
	color: var(--muted);
	font-size: 13px;
}
.rdo-sort:hover,
[aria-sort] > form > .rdo-sort { color: var(--wakatake); }

.rdo-rec {
	position: relative;
	padding: 13px 0;
	border-bottom: 1px solid var(--line);
	font-size: 14px;
}
.rdo-rec:hover,
.rdo-rec.is-current { background: var(--hover); }

.rdo-rec .rdo-cell--no { color: var(--seokchung); font-size: 13px; }
.rdo-rec .rdo-cell--title {
	font-family: var(--font-title);
	font-weight: var(--font-title-weight);
	font-style: var(--font-title-style);
	font-size: 19px;
	line-height: 1.3;
	letter-spacing: 0;
}
.rdo-cell--maker a:hover,
.rdo-rec__link:hover { color: var(--straw-link); }
.rdo-cell--price,
.rdo-row--head .rdo-cell--price { text-align: right; }
.rdo-row--head .rdo-cell--price form { display: flex; justify-content: flex-end; }
.rdo-cell--size:empty::before,
.rdo-cell--ruling:empty::before { content: "—"; color: var(--muted); }

/* The title link covers the whole row; the maker link sits above it. */
.rdo-rec__link::after {
	content: "";
	position: absolute;
	inset: 0;
}
.rdo-cell--maker a {
	position: relative;
	z-index: 1;
}
.rdo-rec__link:focus-visible { outline: none; }
.rdo-rec:focus-within { outline: 2px solid var(--seokchung); outline-offset: -2px; }

.rdo-rec[hidden] { display: none; }

/* ---------- preview pane ---------- */

.rdo-preview__title {
	margin: 20px 0 0;
	padding-bottom: 14px;
	border-bottom: 1px dashed rgba(42, 59, 40, 0.35);
	font-family: var(--font-title);
	font-weight: var(--font-title-weight);
	font-style: var(--font-title-style);
	font-size: 22px;
	line-height: 1.3;
	letter-spacing: 0;
}
.rdo-preview__spec { margin: 0; font-size: 14px; }
.rdo-preview__spec div {
	display: grid;
	grid-template-columns: 80px 1fr;
	gap: 8px;
	padding: 8px 0;
	border-bottom: 1px solid var(--line);
}
.rdo-preview__spec dt { color: var(--muted); }
.rdo-preview__spec dd { margin: 0; }
.rdo-preview__foot {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin: 20px 0 0;
}
.rdo-preview__price { font-size: 22px; }
.rdo-preview__open { color: var(--straw-link); font-size: 14px; }

/* ---------- contact sheet ---------- */

.rdo-register[data-view="sheet"] .rdo-table__head { display: none; }
.rdo-register[data-view="sheet"] .rdo-table__body {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
	gap: 28px 20px;
	padding-top: 24px;
}
.rdo-register[data-view="sheet"] .rdo-rec {
	grid-template-columns: auto minmax(0, 1fr);
	grid-template-areas:
		"thumb thumb"
		"no    maker"
		"title title"
		"spec  spec"
		"price price";
	column-gap: 10px;
	align-content: start;
	padding: 0;
	border: 0;
	font-size: 13px;
}
.rdo-register[data-view="sheet"] .rdo-rec:hover,
.rdo-register[data-view="sheet"] .rdo-rec.is-current { background: none; }
.rdo-register[data-view="sheet"] .rdo-rec__thumb { display: block; grid-area: thumb; margin-bottom: 10px; }
.rdo-register[data-view="sheet"] .rdo-rec:hover .rdo-rec__thumb { outline: 1px solid var(--wakatake); }
.rdo-register[data-view="sheet"] .rdo-cell--no { grid-area: no; }
.rdo-register[data-view="sheet"] .rdo-cell--maker { grid-area: maker; color: var(--muted); }
.rdo-register[data-view="sheet"] .rdo-cell--title { grid-area: title; font-size: 17px; margin-top: 2px; }
.rdo-register[data-view="sheet"] .rdo-rec__spec { display: block; grid-area: spec; color: var(--muted); }
.rdo-register[data-view="sheet"] .rdo-cell--price { grid-area: price; text-align: left; margin-top: 4px; }

/* ---------- empty ---------- */

.rdo-empty {
	margin: 32px 0 0;
	font-size: 16px;
}
.rdo-empty a { color: var(--straw-link); margin-left: 8px; }
.rdo-empty[hidden] { display: none; }

/* ---------- Mode B series (R13) ----------
   List: a tinted header row (line name, maker, count, price) above indented
   member rows (.obj/N + short name only); each series collapses on its button.
   Contact sheet: each series is a section with its own grid; other records
   follow after a rule. Members carry both titles; .is-member shows the short. */

.rdo-rec__short { display: none; }
.rdo-rec.is-member .rdo-rec__full { display: none; }
.rdo-rec.is-member .rdo-rec__short { display: inline; }
.rdo-rec.is-member .rdo-cell--maker,
.rdo-rec.is-member .rdo-cell--size,
.rdo-rec.is-member .rdo-cell--ruling,
.rdo-rec.is-member .rdo-cell--price,
.rdo-rec.is-member .rdo-rec__spec {
	visibility: hidden;
	height: 0; /* hidden cells must not set the row height ("Active Corporation" wrapping) */
	overflow: hidden;
}
.rdo-rec.is-member .rdo-cell--size:empty::before,
.rdo-rec.is-member .rdo-cell--ruling:empty::before { content: none; }

.rdo-series[hidden],
.rdo-series-rest[hidden] { display: none; }
.rdo-series-rest { display: none; }

.rdo-series__head {
	align-items: center;
	padding-top: 6px;
	padding-bottom: 6px;
	background: rgba(42, 59, 40, 0.06);
	border-bottom: 1px solid var(--line);
	font-size: 14px;
}
.rdo-series__name {
	grid-column: 1 / 3;
	min-width: 0;
	display: flex;
	align-items: center;
}
.rdo-series__line {
	font-family: var(--font-title);
	font-weight: var(--font-title-weight);
	font-style: var(--font-title-style);
	font-size: 20px;
	line-height: 1.3;
	letter-spacing: 0;
}
.rdo-series__toggle {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	color: inherit;
	text-align: left;
	cursor: pointer;
}
.rdo-series__toggle:focus-visible { outline: 2px solid var(--seokchung); outline-offset: 2px; }
.rdo-series__chev { flex: none; color: var(--muted); }
.rdo-series:not(.is-collapsed) .rdo-series__chev { transform: rotate(90deg); }
.rdo-series__maker { grid-column: 3; }
.rdo-series__maker a:hover { color: var(--straw-link); }
.rdo-series__count { grid-column: 4 / 6; color: var(--muted); }
.rdo-series__price { grid-column: 6; text-align: right; }
.rdo-reg-layout--nomaker .rdo-series__count { grid-column: 3 / 5; }
.rdo-reg-layout--nomaker .rdo-series__price { grid-column: 5; }

.rdo-collapse-all {
	min-height: 44px;
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	font-size: 15px;
	color: var(--straw-link);
	cursor: pointer;
}
.rdo-collapse-all:hover { color: var(--wakatake); }

@media (min-width: 700px) {
	/* List: first column 24px in from the left, last 24px in from the right, every row. */
	.rdo-register[data-view="register"] .rdo-row { padding-left: 24px; padding-right: 24px; }
	.rdo-register[data-view="register"] .rdo-rec.is-member { padding-left: 44px; } /* indented 20px */
	.rdo-register[data-view="register"] .rdo-series.is-collapsed .rdo-series__members { display: none; }

	/* The toolbar shows "collapse all" in the list; its sort button stays hidden (the headers sort). */
	.rdo-register.has-series[data-view="register"] .rdo-toolbar { display: flex; }
	.rdo-register[data-view="register"] .rdo-sortbtn-form { display: none; }
	.rdo-register[data-view="sheet"] .rdo-collapse-all { display: none; }

	/* Contact sheet: series first (one section each), then the other records. */
	.rdo-register[data-view="sheet"] .rdo-series { grid-column: 1 / -1; order: 0; }
	.rdo-register[data-view="sheet"] .rdo-series__head {
		display: flex;
		flex-wrap: wrap;
		align-items: baseline;
		gap: 4px 14px;
		padding: 8px 0 12px;
		background: none;
		border-bottom: 1px solid var(--line-strong);
	}
	.rdo-register[data-view="sheet"] .rdo-series__name { flex: 1 1 100%; }
	.rdo-register[data-view="sheet"] .rdo-series__line { font-size: 32px; line-height: 1.15; }
	.rdo-register[data-view="sheet"] .rdo-series__chev { display: none; }
	.rdo-register[data-view="sheet"] .rdo-series__toggle { pointer-events: none; min-height: 0; }
	.rdo-register[data-view="sheet"] .rdo-series__price { margin-left: auto; }
	.rdo-register[data-view="sheet"] .rdo-series__members {
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
		gap: 28px 20px;
		padding: 20px 0 16px;
	}
	.rdo-register[data-view="sheet"] .rdo-rec.is-member .rdo-cell--maker,
	.rdo-register[data-view="sheet"] .rdo-rec.is-member .rdo-cell--price,
	.rdo-register[data-view="sheet"] .rdo-rec.is-member .rdo-rec__spec { display: none; }
	.rdo-register[data-view="sheet"] .rdo-series-rest:not([hidden]) {
		display: block;
		grid-column: 1 / -1;
		order: 1;
		margin: 8px 0 0;
		padding-top: 12px;
		border-top: 1px solid var(--line-strong);
		font-size: 13px;
		color: var(--muted);
	}
	.rdo-register[data-view="sheet"] .rdo-table__body > .rdo-rec { order: 2; }
}

/* ---------- mobile (<700) ---------- */

@media (max-width: 699.98px) {
	.rdo-register { padding-top: 32px; }
	.rdo-reg-head { align-items: baseline; }
	.rdo-reg-title { font-size: 44px; }

	/* Only "94 records", inline. */
	.rdo-counters { margin: 0; }
	.rdo-counter { display: none; }
	.rdo-counter--records { display: flex; flex-direction: row-reverse; gap: 6px; font-size: 15px; color: var(--muted); }
	.rdo-counter--records dt { font-size: inherit; }
	.rdo-counter--records dd { font-size: inherit; }

	/* Sub-nav: boxed, scrolls sideways to the screen edge. */
	.rdo-subnav { margin: 20px calc(-1 * var(--gutter)) 0; }
	.rdo-subnav ul { gap: 10px; padding: 0 var(--gutter); }
	.rdo-subnav a {
		padding: 10px 18px;
		border: 1px solid rgba(42, 59, 40, 0.28);
		border-radius: 3px;
		color: var(--wakatake);
		font-size: 15px;
	}
	.rdo-subnav a[aria-current="page"] {
		background: var(--wakatake);
		border-color: var(--wakatake);
		color: var(--mist);
	}

	.rdo-reg-layout { display: block; margin-top: 20px; }

	/* With JS the filters become a bottom sheet; without JS they stay inline. */
	.rdo-js .rdo-filters { display: none; }
	.rdo-js .rdo-filters.is-open {
		display: block;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 50;
		max-height: 85vh;
		overflow-y: auto;
		padding: 0 var(--gutter) 24px;
		background: var(--mist);
		border-radius: 12px 12px 0 0;
		box-shadow: 0 -8px 40px rgba(42, 59, 40, 0.25);
	}
	.rdo-sheet-backdrop {
		position: fixed;
		inset: 0;
		z-index: 40;
		background: rgba(42, 59, 40, 0.4);
	}
	.rdo-sheet-head:not([hidden]) {
		position: sticky;
		top: 0;
		display: flex;
		align-items: center;
		justify-content: space-between;
		margin: 0 calc(-1 * var(--gutter)) 16px;
		padding: 8px var(--gutter);
		background: var(--mist);
		border-bottom: 1px solid var(--line);
	}
	.rdo-sheet-head__title { margin: 0; font-size: 16px; }
	.rdo-sheet-close {
		min-height: 44px;
		padding: 0 4px;
		border: 0;
		background: none;
		color: var(--straw-link);
	}

	.rdo-toolbar { display: flex; }
	.rdo-filter-btn:not([hidden]) { display: inline-flex; }
	.rdo-table__head { display: none; }

	/* Mobile is always the list: no contact sheet, no view switch. */
	.rdo-group--view { display: none; }
	.rdo-register[data-view="sheet"] .rdo-table__body { display: block; padding-top: 0; }

	/* Row: thumb | .obj + maker / title / size · ruling | price */
	.rdo-register[data-view] .rdo-rec {
		grid-template-columns: 52px max-content minmax(0, 1fr) auto;
		grid-template-areas:
			"thumb no    maker price"
			"thumb title title price"
			"thumb spec  spec  price";
		column-gap: 0;
		row-gap: 2px;
		align-items: baseline;
		padding: 14px 0;
		border-bottom: 1px solid var(--line);
		font-size: 13px;
	}
	.rdo-register[data-view] .rdo-rec.is-current { background: none; }
	.rdo-register[data-view] .rdo-row .rdo-rec__thumb {
		display: block;
		grid-area: thumb;
		align-self: start;
		width: 52px;
		height: 64px;
		aspect-ratio: auto;
		margin: 0;
		outline: 0;
	}
	.rdo-register[data-view] .rdo-rec__thumb .rdo-panel__label { display: none; }
	.rdo-register[data-view] .rdo-cell--no { grid-area: no; padding: 0 10px 0 16px; }
	.rdo-register[data-view] .rdo-cell--maker {
		grid-area: maker;
		min-width: 0;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
		color: var(--muted);
	}
	.rdo-register[data-view] .rdo-cell--title { grid-area: title; padding: 0 12px 0 16px; margin: 0; font-size: 18px; }
	.rdo-register[data-view] .rdo-cell--size,
	.rdo-register[data-view] .rdo-cell--ruling {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
	}
	.rdo-register[data-view] .rdo-rec__spec { display: block; grid-area: spec; padding-left: 16px; color: var(--muted); }
	.rdo-register[data-view] .rdo-cell--price { grid-area: price; align-self: start; text-align: right; font-size: 16px; }

	/* Series: line name on one line, "maker · count · price" below; members indented 20px. */
	.rdo-register[data-view] .rdo-series__head {
		display: flex;
		flex-wrap: wrap;
		align-items: baseline;
		column-gap: 0;
		padding: 4px 12px 10px;
	}
	.rdo-register[data-view] .rdo-series__name { flex: 1 1 100%; }
	.rdo-register[data-view] .rdo-series__line { font-size: 20px; }
	.rdo-register[data-view] .rdo-series__maker,
	.rdo-register[data-view] .rdo-series__count,
	.rdo-register[data-view] .rdo-series__price { font-size: 13px; color: var(--muted); text-align: left; }
	.rdo-register[data-view] .rdo-series__count::before,
	.rdo-register[data-view] .rdo-series__price::before { content: "·"; margin: 0 6px; }
	.rdo-register[data-view] .rdo-reg-layout--nomaker .rdo-series__count::before { content: none; margin: 0; } /* maker page: count comes first */
	.rdo-register[data-view] .rdo-rec.is-member { padding-left: 20px; }
	.rdo-register[data-view] .rdo-series.is-collapsed .rdo-series__members { display: none; }
	.rdo-register[data-view] .rdo-rec.is-member .rdo-rec__spec { display: none; }
	.rdo-register.has-series .rdo-collapse-all { margin-left: auto; }
	.rdo-register.has-series .rdo-sortbtn-form { margin-left: 16px; }
}

@media (prefers-reduced-motion: no-preference) {
	.rdo-chip, .rdo-rec { transition: background-color 0.12s, border-color 0.12s; }
	.rdo-series__chev { transition: transform 0.15s; }
}
