/* Scoped tokens: no framework styles leak into the WordPress theme. */
.akat-catalog {
 --akat-accent: oklch(.55 .1 164); --akat-ink: oklch(.25 .018 250); --akat-muted: oklch(.52 .018 250);
 --akat-paper: oklch(1 0 0); --akat-tint: oklch(.975 .004 164); --akat-line: oklch(.90 .008 164);
 --akat-danger: oklch(.55 .19 25); --akat-shadow: oklch(.2 .015 250 / .12); --akat-cols: 3;
 --akat-background: oklch(1 0 0);
 color:var(--akat-ink); font-family:inherit; letter-spacing:0; margin:0; line-height:1.5;
 box-sizing:border-box; width:100%; max-width:100%; min-width:0; padding:0; background:var(--akat-background); overflow-wrap:anywhere;
 container:akat / inline-size; flex:1 1 auto; align-self:stretch;
}
.elementor-widget-alumni_katalog,.elementor-widget-alumni_katalog > .elementor-widget-container { width:100%; max-width:100%; min-width:0; }
.akat-catalog *, .akat-catalog *::before, .akat-catalog *::after { box-sizing:border-box; }
.akat-catalog a { color:var(--akat-accent); text-decoration:none; }
.akat-catalog button, .akat-catalog input, .akat-catalog select { font:inherit; }
.akat-catalog h1,.akat-catalog h2,.akat-catalog h3 { font-family:inherit; letter-spacing:0; color:var(--akat-ink); }
.akat-catalog :is(a,button,input,select):focus-visible { outline:3px solid var(--akat-accent); outline-offset:3px; }
.akat-page { box-sizing:border-box; max-width:min(100%,var(--akat-page-width,1140px)); width:calc(100% - 40px); min-width:0; margin:40px auto 64px; padding:24px; background:var(--akat-background,oklch(1 0 0)); }
.akat-page > .akat-catalog { margin:0; padding:0; }
.akat-profile > div,.akat-generation-header > div,.akat-dl > div,.akat-table-wrap { min-width:0; max-width:100%; }
.akat-catalog .akat-photo { max-width:100%; margin:0; }
.akat-catalog .akat-content :is(img,video,iframe) { max-width:100%; }
.akat-catalog .akat-content :is(img,video) { height:auto; }
.akat-filters { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; margin:24px 0; }
.akat-search { display:flex; flex:1 1 240px; align-items:center; gap:10px; border:1px solid var(--akat-line); border-radius:6px; padding:0 14px; color:var(--akat-muted); background:var(--akat-paper); }
.akat-search input { width:100%; min-width:0; padding:12px 0!important; border:0!important; background:transparent!important; box-shadow:none!important; color:var(--akat-ink); }
.akat-button,.akat-back { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:10px 16px; border:1px solid var(--akat-line); border-radius:6px; background:var(--akat-paper); color:var(--akat-ink); cursor:pointer; font-weight:600; font-size:14px; }
.akat-catalog :is(.akat-button,.akat-back,.akat-icon-button) { font-family:inherit; letter-spacing:0; text-transform:none; line-height:1.5; }
.akat-catalog svg { display:block; width:18px; height:18px; min-width:18px; flex-shrink:0; color:inherit; }
.akat-catalog .akat-primary { background:var(--akat-accent); border-color:var(--akat-accent); color:var(--akat-paper); }
.akat-catalog .akat-back { margin:0 0 24px; justify-content:flex-start; max-width:100%; }
.akat-toolbar { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:16px; margin:28px 0 20px; }
.akat-toolbar > div { min-width:0; }
.akat-toolbar h2 { margin:0; font-size:22px; font-weight:650; }
.akat-muted { color:var(--akat-muted); font-size:13px; }
.akat-toolbar-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:14px; align-items:center; }
.akat-view-switch { display:flex; padding:3px; border:1px solid var(--akat-line); border-radius:6px; gap:3px; }
.akat-icon-button { display:inline-flex; width:36px; height:36px; flex-shrink:0; align-items:center; justify-content:center; padding:0; border:0; border-radius:4px; background:transparent; color:var(--akat-muted); cursor:pointer; }
.akat-icon-button:hover,.akat-icon-button[aria-pressed="true"] { color:var(--akat-accent); background:var(--akat-tint); }
.akat-catalog .akat-danger { color:var(--akat-danger); }
/* Theme-proof controls: Hello Elementor/Elementor kit button and link colors must not hide icons or labels. */
.akat-catalog :is(a,button).akat-icon-button, .akat-catalog :is(a,button).akat-icon-button:is(:hover,:focus,:active,:visited) { display:inline-flex; width:36px; height:36px; min-width:36px; padding:0; margin:0; border:0; border-radius:4px; box-shadow:none; background:transparent; color:var(--akat-muted); font-size:14px; line-height:1; text-decoration:none; }
.akat-catalog :is(a,button).akat-icon-button:is(:hover,:focus-visible), .akat-catalog button.akat-icon-button[aria-pressed="true"], .akat-catalog button.akat-icon-button[aria-pressed="true"]:is(:hover,:focus,:active) { color:var(--akat-accent); background:var(--akat-tint); }
.akat-catalog :is(a,button).akat-icon-button.akat-danger, .akat-catalog :is(a,button).akat-icon-button.akat-danger:is(:hover,:focus,:active,:visited) { color:var(--akat-danger); }
.akat-catalog :is(a,button):is(.akat-button,.akat-back), .akat-catalog :is(a,button):is(.akat-button,.akat-back):is(:hover,:focus,:active,:visited) { border:1px solid var(--akat-line); border-radius:6px; box-shadow:none; background:var(--akat-paper); color:var(--akat-ink); text-decoration:none; font-size:14px; font-weight:600; }
.akat-catalog :is(a,button):is(.akat-button,.akat-back):hover { border-color:var(--akat-accent); color:var(--akat-accent); }
.akat-catalog :is(a,button).akat-primary, .akat-catalog :is(a,button).akat-primary:is(:hover,:focus,:active,:visited) { background:var(--akat-accent); border-color:var(--akat-accent); color:var(--akat-paper); }
.akat-catalog :is(a,button).akat-primary:hover { filter:brightness(.92); }
.akat-catalog .akat-icon-button svg, .akat-catalog .akat-button svg, .akat-catalog .akat-back svg { stroke:currentColor; fill:none; visibility:visible; opacity:1; }
.akat-catalog .akat-results { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,max(250px,calc((100% - (var(--akat-cols) - 1) * 24px) / var(--akat-cols)))),1fr)); gap:24px; min-width:0; width:100%; }
.akat-generation-card,.akat-card { min-width:0; background:var(--akat-paper); border:1px solid var(--akat-line); border-radius:8px; overflow:hidden; }
.akat-generation-card { display:flex; flex-direction:column; }
.akat-generation-photo { position:relative; margin:0; aspect-ratio:16/10; background:var(--akat-tint); display:grid; place-items:center; overflow:hidden; }
.akat-catalog .akat-generation-photo img { position:absolute; inset:0; width:100%; height:100%; max-width:100%; max-height:100%; object-fit:contain; display:block; margin:0; }
.akat-generation-image-link,.akat-photo-link { display:block; min-width:0; max-width:100%; }
.akat-gen-placeholder { text-align:center; padding:24px; font-weight:600; color:var(--akat-muted); }
.akat-generation-body,.akat-card-body { padding:20px; }
.akat-badge { display:block; color:var(--akat-accent); font-size:12px; font-weight:650; margin-bottom:6px; }
.akat-catalog .akat-name { font-size:20px; line-height:1.3; margin:0 0 14px; font-weight:650; overflow-wrap:anywhere; }
.akat-name a { color:var(--akat-ink); }
.akat-generation-meta { display:grid; grid-template-columns:1fr 1fr; gap:10px 16px; margin:12px 0 18px; }
.akat-generation-meta > div:last-child { grid-column:1/-1; }
.akat-generation-meta dt,.akat-dl dt { color:var(--akat-muted); font-size:12px; margin-bottom:3px; }
.akat-generation-meta dd,.akat-dl dd { margin:0; font-size:14px; font-weight:550; overflow-wrap:anywhere; }
.akat-more { display:inline-flex; font-size:14px; font-weight:600; padding-top:10px; }
.akat-generation-header { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); align-items:center; gap:32px; padding-bottom:28px; border-bottom:1px solid var(--akat-line); }
.akat-generation-header .akat-generation-photo { border-radius:6px; }
.akat-generation-header h1 { font-size:32px; margin:6px 0 20px; line-height:1.25; overflow-wrap:anywhere; }
.akat-class-links { display:flex; flex-wrap:wrap; gap:10px; margin:20px 0; }
.akat-catalog[data-kind="generations"][data-view="list"] .akat-results { grid-template-columns:1fr; gap:12px; }
.akat-catalog[data-kind="generations"][data-view="list"] .akat-generation-card { display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); }
.akat-catalog[data-kind="generations"][data-view="list"] .akat-generation-image-link { display:flex; align-items:center; background:var(--akat-tint); }
.akat-catalog[data-kind="generations"][data-view="list"] .akat-generation-photo { width:100%; }
.akat-catalog[data-kind="generations"][data-view="list"] .akat-generation-meta { grid-template-columns:1fr 1fr 2fr; }
.akat-catalog[data-kind="generations"][data-view="list"] .akat-generation-meta > div:last-child { grid-column:auto; }
.akat-card { padding:16px; }
.akat-card-body { padding:18px 2px 2px; }
.akat-meta { padding:0; list-style:none; margin:8px 0; color:var(--akat-muted); font-size:14px; }
.akat-excerpt { color:var(--akat-muted); font-size:14px; margin:10px 0; }
.akat-photo { margin:0; position:relative; transition:transform .3s,box-shadow .3s; }
.akat-photo-inner { position:relative; overflow:hidden; aspect-ratio:4/5; background:var(--akat-tint); }
.akat-catalog .akat-photo img { position:absolute; inset:0; display:block; width:100%; height:100%; max-width:100%; max-height:100%; margin:0; object-fit:cover; object-position:50% 25%; transition:transform .45s,filter .45s; }
.akat-catalog[data-fit="contain"] .akat-photo img { object-fit:contain; }
.akat-initials { position:absolute; inset:0; display:grid; place-items:center; font-size:48px; color:var(--akat-accent); text-transform:uppercase; }
.akat-frame--elegant .akat-photo { padding:9px; border:1px solid var(--akat-accent); }
.akat-frame--elegant .akat-photo::after { content:""; position:absolute; inset:4px; border:1px solid var(--akat-accent); pointer-events:none; }
.akat-frame--polaroid .akat-photo { padding:10px 10px 32px; background:var(--akat-paper); box-shadow:0 5px 18px var(--akat-shadow); }
.akat-frame--classic .akat-photo { padding:12px; border:7px ridge var(--akat-accent); background:var(--akat-paper); }
.akat-frame--round .akat-photo { width:85%; margin:auto; padding:5px; border:2px solid var(--akat-accent); border-radius:50%; }
.akat-frame--round .akat-photo-inner { aspect-ratio:1; border-radius:50%; }
.akat-frame--modern .akat-photo { overflow:hidden; border-radius:8px; border-bottom:4px solid var(--akat-accent); }
.akat-frame--clean .akat-photo { border:1px solid var(--akat-line); }
.akat-frame--outline .akat-photo { padding:5px; border:3px solid var(--akat-accent); }
.akat-frame--gallery .akat-photo { padding:20px; border:1px solid var(--akat-line); box-shadow:0 6px 16px var(--akat-shadow); background:var(--akat-paper); }
.akat-frame--editorial .akat-photo { border-left:5px solid var(--akat-accent); padding-left:8px; }
.akat-frame--arch .akat-photo-inner { border-radius:50% 50% 4px 4px; }
.akat-catalog[data-effect="zoom"] :is(.akat-card,.akat-frame-opt):hover .akat-photo img { transform:scale(1.045); }
.akat-catalog[data-effect="lift"] :is(.akat-card,.akat-frame-opt):hover .akat-photo { transform:translateY(-4px); box-shadow:0 12px 24px var(--akat-shadow); }
.akat-catalog[data-effect="grayscale"] .akat-photo img { filter:grayscale(1); }
.akat-catalog[data-effect="sepia"] .akat-photo img { filter:sepia(.65); }
.akat-catalog:is([data-effect="grayscale"],[data-effect="sepia"]) :is(.akat-card,.akat-frame-opt):hover .akat-photo img { filter:none; }
.akat-catalog[data-effect="saturate"] .akat-photo img { filter:saturate(1.3); }
.akat-catalog[data-effect="contrast"] .akat-photo img { filter:contrast(1.15); }
.akat-catalog[data-effect="soft"] .akat-photo img { filter:contrast(.92) brightness(1.04); }
.akat-table-wrap { display:none; overflow-x:auto; border:1px solid var(--akat-line); border-radius:8px; }
.akat-catalog[data-kind="alumni"][data-view="list"] .akat-table-wrap { display:block; }
.akat-catalog[data-kind="alumni"][data-view="list"] .akat-alumni-grid { display:none; }
.akat-table { width:100%; border-collapse:collapse; font-size:14px; margin:0; background:var(--akat-paper); }
.akat-table th { text-align:left; color:var(--akat-muted); background:var(--akat-tint); font-weight:600; font-size:12px; white-space:nowrap; }
.akat-table :is(th,td) { padding:14px 18px; border:0; border-bottom:1px solid var(--akat-line); vertical-align:middle; }
.akat-table tbody tr:last-child td { border-bottom:0; }
.akat-table tbody tr:hover { background:var(--akat-tint); }
.akat-table td { max-width:300px; overflow-wrap:anywhere; }
.akat-person { display:flex; align-items:center; gap:12px; min-width:210px; color:var(--akat-ink)!important; }
.akat-table .akat-photo { width:44px; height:52px; flex-shrink:0; padding:0; border:0; border-radius:4px; overflow:hidden; box-shadow:none; }
.akat-table .akat-photo::after { display:none; }
.akat-table .akat-photo-inner { width:100%; height:100%; border-radius:0; }
.akat-table .akat-initials { font-size:18px; }
.akat-actions { display:flex; gap:4px; }
.akat-pagination { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:8px; margin-top:28px; }
.akat-pagination a { display:grid; place-items:center; min-width:36px; height:36px; border:1px solid var(--akat-line); border-radius:4px; }
.akat-pagination a[aria-current="page"] { color:var(--akat-paper); background:var(--akat-accent); border-color:var(--akat-accent); }
.akat-empty { text-align:center; color:var(--akat-muted); padding:48px 16px; }
.akat-profile { display:grid; grid-template-columns:minmax(0, .8fr) minmax(0,1.3fr); gap:40px; align-items:start; }
.akat-profile-name { font-size:30px; line-height:1.25; margin:6px 0 24px; overflow-wrap:anywhere; }
.akat-dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; padding:22px 0; margin:0 0 24px; border-block:1px solid var(--akat-line); }
.akat-content { line-height:1.75; overflow-wrap:anywhere; }
.akat-long h3 { margin:24px 0 8px; font-size:18px; }
@media(max-width:700px) {
 .akat-page { width:calc(100% - 24px); padding:16px; }
}
@container akat (max-width:700px) {
 .akat-generation-header,.akat-profile { grid-template-columns:1fr; gap:24px; }
 .akat-profile > div:first-child { max-width:420px; width:100%; margin:auto; }
 .akat-toolbar { align-items:start; }
 .akat-toolbar-actions { flex-direction:column-reverse; align-items:flex-end; }
 .akat-generation-header h1 { font-size:26px; }
 .akat-catalog[data-kind="generations"][data-view="list"] .akat-generation-card { grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); }
 .akat-catalog[data-kind="generations"][data-view="list"] .akat-generation-body { padding:14px; }
 .akat-catalog[data-kind="generations"][data-view="list"] .akat-generation-meta { grid-template-columns:1fr; }
 .akat-catalog[data-kind="generations"][data-view="list"] .akat-name { font-size:17px; }
 .akat-dl { grid-template-columns:1fr; }
}
@container akat (max-width:440px) {
 .akat-catalog[data-kind="generations"][data-view="list"] .akat-generation-card { grid-template-columns:1fr; }
 .akat-toolbar { gap:10px; }
 .akat-toolbar-actions .akat-button { padding:8px; font-size:12px; max-width:150px; }
 .akat-toolbar h2 { font-size:20px; }
 .akat-search { padding:0 10px; gap:6px; }
 .akat-filters .akat-button { padding:8px 10px; }
 .akat-generation-meta { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
}
@media(prefers-reduced-motion:reduce) { .akat-catalog * { transition:none!important; transform:none!important; } }
