/* UL Test Certificates — premium DAR-inspired cards */
.ultc-wrap{width:100%;color:var(--ultc-text,#17212b);font-family:inherit}
.ultc-wrap *{box-sizing:border-box}
.ultc-grid{display:grid;grid-template-columns:repeat(var(--ultc-cols,3),minmax(0,1fr));gap:var(--ultc-gap,24px);align-items:stretch}
.ultc-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;background:var(--ultc-card-bg,#fff);border:1px solid rgba(23,33,43,.10);border-radius:var(--ultc-radius,12px);box-shadow:0 3px 14px rgba(18,30,42,.055);transition:transform .35s cubic-bezier(.2,.75,.25,1),box-shadow .35s,border-color .35s;will-change:transform}
.ultc-animated .ultc-card{animation:ultc-enter .55s both}
.ultc-animated .ultc-card:nth-child(3n+2){animation-delay:.07s}.ultc-animated .ultc-card:nth-child(3n){animation-delay:.14s}
@keyframes ultc-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
.ultc-card:hover{transform:translateY(calc(-1 * var(--ultc-lift,8px)));box-shadow:0 18px 42px rgba(18,30,42,.14);border-color:color-mix(in srgb,var(--ultc-accent,#c98a00) 50%,white)}
.ultc-image-frame{position:relative;aspect-ratio:var(--ultc-image-ratio,4/3);overflow:hidden;background:#f5f6f7;border-bottom:3px solid var(--ultc-accent,#c98a00);margin:0}
.ultc-card-image{display:block;width:100%;height:100%;object-fit:var(--ultc-image-fit,contain);transition:transform .65s cubic-bezier(.2,.75,.25,1),filter .4s}
.ultc-card:hover .ultc-card-image{transform:scale(1.045);filter:saturate(1.04)}
.ultc-image-placeholder{height:100%;display:grid;place-items:center;padding:24px;text-align:center;color:var(--ultc-muted,#5d6670);font-weight:600}
.ultc-preview-trigger{position:absolute;inset:auto 12px 12px auto;display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.72);border-radius:999px;padding:9px 13px;background:rgba(19,30,42,.86);color:#fff;font:inherit;font-size:12px;font-weight:700;cursor:pointer;opacity:0;transform:translateY(8px);transition:opacity .25s,transform .25s,background .25s}
.ultc-rtl .ultc-preview-trigger{inset:auto auto 12px 12px}
.ultc-card:hover .ultc-preview-trigger,.ultc-preview-trigger:focus-visible{opacity:1;transform:translateY(0)}
.ultc-preview-glyph{font-size:15px;line-height:1}
.ultc-card-content{display:flex;flex:1;flex-direction:column;align-items:stretch;padding:var(--ultc-padding,22px);gap:14px}
.ultc-card-title{margin:0!important;padding:0!important;color:var(--ultc-text,#17212b);font-size:var(--ultc-title-size,18px)!important;line-height:1.45!important;font-weight:700!important;text-align:var(--ultc-title-align,left)}
.ultc-rtl .ultc-card-title{text-align:right}
.ultc-card-description{margin:0!important;color:var(--ultc-muted,#5d6670);font-size:var(--ultc-body-size,14px);line-height:1.8;white-space:normal;overflow-wrap:anywhere}
.ultc-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:4px}
.ultc-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:11px 16px;border:1px solid transparent;border-radius:var(--ultc-btn-radius,8px);font:inherit;font-size:13px;font-weight:700;line-height:1.3;text-align:center;text-decoration:none!important;cursor:pointer;overflow:hidden;transition:transform .22s,box-shadow .22s,background .22s,border-color .22s,color .22s}
.ultc-btn:before{content:"";position:absolute;inset:0;transform:translateX(-120%);background:linear-gradient(110deg,transparent,rgba(255,255,255,.24),transparent);transition:transform .55s}
.ultc-btn:hover:before{transform:translateX(120%)}
.ultc-btn:hover{transform:translateY(-2px);box-shadow:0 7px 18px rgba(18,30,42,.16)}
.ultc-btn:active{transform:translateY(0) scale(.98)}
.ultc-btn-download{background:var(--ultc-button,#d81036);color:var(--ultc-button-text,#fff)!important}
.ultc-btn-download:hover{background:color-mix(in srgb,var(--ultc-button,#d81036) 86%,#000);color:var(--ultc-button-text,#fff)!important}
.ultc-btn-preview{background:transparent;border-color:var(--ultc-accent,#c98a00);color:var(--ultc-text,#17212b)}
.ultc-btn-preview:hover{background:var(--ultc-accent,#c98a00);color:#fff}
.ultc-empty{padding:24px;text-align:center;border:1px dashed #ccd1d6;border-radius:12px}
.ultc-viewer{position:fixed;inset:0;z-index:999999;display:none;align-items:center;justify-content:center;padding:24px}
.ultc-viewer.is-open{display:flex}
.ultc-viewer-backdrop{position:absolute;inset:0;background:rgba(12,19,28,.78);backdrop-filter:blur(7px);animation:ultc-fade .2s}
.ultc-viewer-panel{position:relative;z-index:1;width:min(1100px,96vw);height:min(92vh,900px);display:flex;flex-direction:column;overflow:hidden;border-radius:14px;background:#f1f0ed;box-shadow:0 28px 90px rgba(0,0,0,.36);animation:ultc-pop .28s cubic-bezier(.2,.75,.25,1)}
.ultc-viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 18px;background:#fff;border-bottom:1px solid #d9dadd}
.ultc-viewer-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#17212b;font-size:14px}
.ultc-viewer-controls{display:flex;align-items:center;gap:12px;flex-shrink:0}
.ultc-viewer-download{display:inline-flex;align-items:center;justify-content:center;padding:9px 13px;border-radius:7px;background:var(--ultc-button,#d81036);color:#fff!important;text-decoration:none!important;font-size:12px;font-weight:700;transition:transform .2s,box-shadow .2s}
.ultc-viewer-download:hover{transform:translateY(-2px);box-shadow:0 5px 14px #0002}
.ultc-viewer-close{display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:50%;background:#eef0f2;color:#1a2632;font-size:26px;line-height:1;cursor:pointer;transition:transform .2s,background .2s}
.ultc-viewer-close:hover{transform:rotate(90deg);background:#e0e3e6}
.ultc-book-stage{flex:1;min-height:0;overflow:auto;display:flex;align-items:center;justify-content:center;padding:clamp(14px,3vw,38px);background:radial-gradient(ellipse at center,#d9d8d5 0,#bdbdbb 100%)}
.ultc-book{position:relative;width:min(760px,100%);height:100%;min-height:300px;padding:14px;background:#fff;border-radius:6px;box-shadow:0 10px 28px rgba(0,0,0,.18)}
.ultc-book:before{display:none!important}
.ultc-pdf-frame{position:relative;z-index:1;display:block;width:100%;height:100%;min-height:300px;border:0;background:#fff;box-shadow:0 1px 5px #0002}
@keyframes ultc-fade{from{opacity:0}to{opacity:1}}@keyframes ultc-pop{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:1024px){.ultc-grid{grid-template-columns:repeat(min(var(--ultc-cols,3),2),minmax(0,1fr))}}
@media(max-width:600px){.ultc-grid{grid-template-columns:1fr;gap:min(var(--ultc-gap,24px),18px)}.ultc-card-content{padding:min(var(--ultc-padding,22px),20px)}.ultc-actions{flex-direction:column}.ultc-btn{width:100%}.ultc-viewer{padding:8px}.ultc-viewer-panel{width:100%;height:94vh;border-radius:10px}.ultc-viewer-toolbar{padding:10px;gap:8px}.ultc-viewer-title{font-size:12px}.ultc-viewer-controls{gap:6px}.ultc-viewer-download{padding:8px;font-size:11px}.ultc-book-stage{padding:8px}.ultc-book{padding:5px}.ultc-book:before{display:none}}
@media(prefers-reduced-motion:reduce){.ultc-wrap *, .ultc-wrap *:before,.ultc-wrap *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.ultc-shadow-off .ultc-card{box-shadow:none}
.ultc-shadow-off .ultc-card:hover{box-shadow:0 12px 28px rgba(18,30,42,.10)}
