.catalog-layout{display:flex;flex-direction:column;gap:32px;max-width:1200px;margin:0 auto}@media(min-width:768px){.catalog-layout{flex-direction:row;align-items:flex-start}}.catalog-sidebar{width:100%;flex-shrink:0}@media(min-width:768px){.catalog-sidebar{width:240px}}.catalog-filters{display:flex;flex-direction:column;gap:24px}.filter-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;gap:12px;flex-wrap:wrap}.filter-header h2{font-family:var(--font-display);font-size:1.25rem;font-weight:600;margin:0}.filter-reset{background:none;border:none;font-family:var(--font-sans);font-size:.85rem;color:var(--focus);cursor:pointer;text-decoration:underline;padding:10px 4px;min-height:44px}.filter-reset:hover{color:var(--ink)}.filter-group{border-bottom:1px solid var(--soft-line);padding-bottom:16px}.filter-group summary{font-family:var(--font-sans);font-weight:600;font-size:1rem;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;-webkit-user-select:none;user-select:none;min-height:44px;gap:12px}.filter-group summary::-webkit-details-marker{display:none}.filter-group summary:after{content:"▾";font-size:1.2rem;line-height:1;transition:transform .2s}.filter-group[open] summary:after{transform:rotate(180deg)}.filter-options{display:flex;flex-direction:column;gap:12px;margin-top:16px}.filter-option{display:flex;align-items:flex-start;gap:10px;font-size:.95rem;cursor:pointer;min-height:44px;padding-block:8px}.filter-option input[type=checkbox]{margin-top:3px;width:16px;height:16px;accent-color:var(--focus);cursor:pointer;flex-shrink:0}.filter-desc{display:block;font-size:.8rem;color:var(--focus);margin-top:2px}.catalog-main{flex-grow:1;width:100%;min-width:0}.catalog-summary{margin:0 0 18px;font-size:.9rem;color:var(--muted-ink)}.filter-status{display:none}.catalog-layout:has(input:checked) .filter-status{display:inline}.catalog-notice{background:var(--surface);border:1px solid var(--soft-line);padding:16px 20px;border-radius:6px;max-width:1200px;margin:0 auto 24px;font-size:.95rem;line-height:1.5}.catalog-notice h1{font-family:var(--font-display);font-size:1.4rem;margin:0 0 8px}.catalog-notice p{margin:0}.catalog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:24px}.course-card{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--soft-line);border-radius:8px;min-width:0}.course-media{background:var(--placeholder);height:auto;aspect-ratio:2 / 1;min-height:160px;border-radius:8px 8px 0 0;display:flex;align-items:center;justify-content:center;color:var(--focus);font-family:var(--font-display);font-size:.9rem;text-transform:uppercase;letter-spacing:1px}.course-body{padding:20px;flex-grow:1;display:flex;flex-direction:column}.course-label{display:inline-block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--focus);margin-bottom:8px}.course-title{font-family:var(--font-display);font-size:1.25rem;font-weight:600;margin:0 0 12px;line-height:1.2}.course-summary{font-size:.95rem;color:var(--ink);margin:0 0 20px;flex-grow:1;line-height:1.5}.course-meta{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:var(--focus);border-top:1px solid var(--soft-line);padding-top:16px}.course-meta-item{display:flex;align-items:center;gap:8px}.course-action{padding:0 20px 16px;background:var(--paper)}.course-action details{width:100%}.course-action summary{display:block;width:100%;padding:16px;text-align:center;font-family:var(--font-sans);font-weight:600;font-size:1rem;color:var(--paper);background:var(--ink);border-radius:5px;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none;transition:background-color .2s}.course-action summary:hover{background:#333}.course-action summary:focus-visible,.filter-group summary:focus-visible,.filter-reset:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.course-action summary::-webkit-details-marker{display:none}.course-action summary:after{content:" ↓"}.course-action details[open] summary:after{content:" ↑"}.course-expanded{padding:20px 0;background:var(--paper);border-top:1px solid var(--soft-line);font-size:.95rem;line-height:1.5}.course-expanded h4{margin:0 0 8px;font-size:1rem}.course-expanded ul{margin:0 0 16px;padding-left:20px}.course-expanded p{margin:0}.no-results{display:none;grid-column:1 / -1;text-align:center;padding:48px 24px;background:var(--surface);border:1px dashed var(--placeholder);border-radius:8px;color:var(--focus)}.no-results h3{margin:0 0 8px;color:var(--ink);font-family:var(--font-display)}.catalog-layout:has(#aud-doctor:checked):not(:has(#aud-embryologist:checked)) .course-card:not([data-audience~=doctor]){display:none}.catalog-layout:has(#aud-embryologist:checked):not(:has(#aud-doctor:checked)) .course-card:not([data-audience~=embryologist]){display:none}.catalog-layout:has(#aud-doctor:checked):has(#aud-embryologist:checked) .course-card:not([data-audience~=doctor]):not([data-audience~=embryologist]){display:none}.catalog-layout:has(#spec-clinical:checked):not(:has(#spec-embryology:checked)):not(:has(#spec-preservation:checked)) .course-card:not([data-specialty~=clinical]){display:none}.catalog-layout:has(#spec-embryology:checked):not(:has(#spec-clinical:checked)):not(:has(#spec-preservation:checked)) .course-card:not([data-specialty~=embryology]){display:none}.catalog-layout:has(#spec-preservation:checked):not(:has(#spec-clinical:checked)):not(:has(#spec-embryology:checked)) .course-card:not([data-specialty~=preservation]){display:none}.catalog-layout:has(#spec-clinical:checked):has(#spec-embryology:checked):not(:has(#spec-preservation:checked)) .course-card:not([data-specialty~=clinical]):not([data-specialty~=embryology]){display:none}.catalog-layout:has(#spec-clinical:checked):has(#spec-preservation:checked):not(:has(#spec-embryology:checked)) .course-card:not([data-specialty~=clinical]):not([data-specialty~=preservation]){display:none}.catalog-layout:has(#spec-embryology:checked):has(#spec-preservation:checked):not(:has(#spec-clinical:checked)) .course-card:not([data-specialty~=embryology]):not([data-specialty~=preservation]){display:none}.catalog-layout:has(#spec-clinical:checked):has(#spec-embryology:checked):has(#spec-preservation:checked) .course-card:not([data-specialty~=clinical]):not([data-specialty~=embryology]):not([data-specialty~=preservation]){display:none}.catalog-layout:has(#aud-doctor:checked):not(:has(#aud-embryologist:checked)):has(#spec-embryology:checked):not(:has(#spec-clinical:checked)):not(:has(#spec-preservation:checked)) .no-results{display:block}.catalog-layout:has(#aud-embryologist:checked):not(:has(#aud-doctor:checked)):has(#spec-clinical:checked):not(:has(#spec-embryology:checked)):not(:has(#spec-preservation:checked)) .no-results{display:block}.course-media{position:relative;padding:0;display:block;overflow:hidden;background:var(--placeholder, #e2e8f0)}.course-image{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease-out}.course-card:hover .course-image{transform:scale(1.05)}.course-card:hover .crop-microscope{transform:scale(1.2)}.crop-ivf{object-position:center 30%}.crop-microscope{object-position:70% 60%;transform:scale(1.15)}.crop-cryo{object-position:left bottom}.crop-consult{object-position:center 20%}.crop-quality{object-position:right 40%}.crop-learning{object-position:center center}.media-chip{position:absolute;top:12px;left:12px;max-width:calc(100% - 24px);background:#fffffff2;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);color:#111;font-size:.75rem;font-weight:600;padding:4px 10px;border-radius:6px;display:inline-flex;align-items:center;gap:6px;box-shadow:0 2px 8px #00000014;font-family:var(--font-sans, system-ui, -apple-system, sans-serif);border:1px solid rgba(0,0,0,.05)}.icon-chip{width:14px;height:14px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.icon-meta{width:16px;height:16px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.6}@media(prefers-reduced-motion:reduce){.course-image{transition:none}}
