/* Only new catalogue components. Shared AIRB CSS owns page layout, headings,
   tags, buttons, header, footer and responsive section structure. */
.cat-skip{position:fixed;top:-80px;left:16px;z-index:30;padding:var(--sp-xs) var(--sp-sm);background:var(--line);color:var(--bg)}
.cat-skip:focus{top:8px}
.cat-demo{display:grid;grid-template-columns:1fr 1fr;border:2px solid var(--line)}
.cat-source{min-width:0;border-right:2px solid var(--line);display:flex;flex-direction:column}
.cat-panel-bar{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-sm);min-height:56px;padding:var(--sp-xs) var(--sp-md);border-bottom:2px solid var(--line)}
.cat-panel-bar .label{padding-top:0}
.cat-photo{height:440px;background:#ecebe8;overflow:hidden}
.cat-photo img{width:100%;height:100%;object-fit:contain}
.cat-caption{display:flex;justify-content:space-between;gap:var(--sp-sm);padding:var(--sp-xs) var(--sp-md);border-top:2px solid var(--line);font-size:var(--fs-small);color:var(--muted)}
.cat-picker{display:flex;flex-wrap:wrap;gap:var(--sp-xs);padding:var(--sp-sm);border-top:2px solid var(--line);margin-top:auto}
.cat-choice{display:flex;align-items:center;gap:var(--sp-xs);padding:4px 12px 4px 4px;min-height:48px;border:2px solid #aaa;background:var(--bg);color:var(--text);font:inherit;cursor:pointer}
.cat-choice img{width:40px;height:40px;object-fit:cover}
.cat-choice[aria-pressed=true]{border-color:var(--line);font-weight:800}
.cat-choice:hover{border-color:var(--line)}
.cat-output{min-width:0;background:var(--surface)}
.cat-output .cat-panel-bar{background:var(--bg)}
.cat-languages{display:flex}
.cat-languages button{min-width:40px;min-height:36px;padding:4px 8px;border:2px solid var(--line);background:var(--bg);color:var(--text);font:inherit;font-weight:800;font-size:var(--fs-small);cursor:pointer}
.cat-languages button+button{border-left:0}
.cat-languages button[aria-pressed=true]{background:var(--line);color:var(--bg)}
.cat-fields{padding:var(--sp-md);display:grid;gap:var(--sp-md)}
.cat-field{display:grid;gap:var(--sp-xs)}
.cat-field+.cat-field{border-top:1px solid #bbb;padding-top:var(--sp-sm)}
.cat-field .label{padding-top:0;color:var(--muted)}
.cat-field h3{font-size:var(--fs-subtitle);line-height:1.15}
.cat-field p{line-height:1.6}
.cat-example-note{margin-top:var(--sp-sm);font-size:var(--fs-small);color:var(--muted)}
.cat-faq details{border-top:2px solid var(--line)}
.cat-faq summary{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-md);padding:var(--sp-sm) 0;list-style:none;cursor:pointer;font-weight:800;font-size:var(--fs-heading);line-height:1.4}
.cat-faq summary::-webkit-details-marker{display:none}
.cat-faq summary span{font-size:1.5rem;line-height:1}
.cat-faq details[open] summary span{transform:rotate(45deg)}
.cat-faq details p{padding-bottom:var(--sp-md);color:var(--muted)}
.cat-choice:focus-visible,.cat-languages button:focus-visible,.cat-faq summary:focus-visible{outline:2px solid var(--line);outline-offset:4px}
@media(max-width:900px){.cat-demo{grid-template-columns:1fr}.cat-source{border-right:0;border-bottom:2px solid var(--line)}}
@media(max-width:560px){.cat-panel-bar,.cat-caption{padding-left:var(--sp-sm);padding-right:var(--sp-sm)}.cat-fields{padding:var(--sp-sm)}.cat-photo{height:400px}.cat-panel-bar{gap:var(--sp-xs)}.cat-caption{font-size:.75rem}}
