/* One Little Teacher / product card v1. Review-only; not deployed. */
:root { --olt-navy:#1a3a5c; --olt-cream:#fffdfa; --olt-paper:#f7f2e9; --olt-muted:#526477; --olt-line:#d5caba; --olt-sage:#e5eddf; }
.olt-card__category { font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; font-weight:700; }
.olt-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; align-items:stretch; }
.olt-card { min-width:0; background:var(--olt-cream); border:1px solid var(--olt-line); border-radius:26px; overflow:hidden; display:flex; flex-direction:column; }
.olt-card__art { aspect-ratio:4/3; background:#f4eee2; padding:16px; display:flex; align-items:center; justify-content:center; }
.olt-card__art img { display:block; width:100%; height:100%; object-fit:contain; object-position:center; }
.olt-card__body { padding:24px; display:flex; flex-direction:column; flex:1; gap:12px; }
.olt-card__meta { display:flex; flex-wrap:wrap; gap:8px; align-items:center; justify-content:space-between; min-height:28px; }
.olt-card__badge { display:inline-block; border:1px solid #a5b59c; border-radius:100px; padding:3px 10px; font-size:.75rem; font-weight:bold; background:var(--olt-sage); }
.olt-card[data-status="paid-unavailable"] .olt-card__badge { background:#f5e7cf; border-color:#bf9c62; }
.olt-card__title { margin:0; font:normal 1.5rem/1.2 Georgia,serif; min-height:2.4em; overflow-wrap:anywhere; }
.olt-card__summary { margin:0; color:var(--olt-muted); font-size:1rem; line-height:1.5; min-height:3em; }
.olt-card__footer { margin-top:auto; padding-top:8px; }
.olt-card__action { display:flex; justify-content:center; align-items:center; width:100%; min-height:48px; border:2px solid var(--olt-navy); border-radius:12px; padding:10px 12px; font:700 .9375rem/1.4 Arial,sans-serif; text-align:center; text-decoration:none; color:var(--olt-cream); background:var(--olt-navy); }
a.olt-card__action:hover { background:#294f75; }
a.olt-card__action:focus-visible { outline:3px solid #9a530d; outline-offset:4px; }
.olt-card__action:disabled { opacity:1; color:var(--olt-muted); background:#eee9e1; border-color:#b5aa9b; cursor:not-allowed; }
@media(max-width:900px) { .olt-grid {grid-template-columns:repeat(2,minmax(0,1fr));} }
@media(max-width:580px) { .olt-grid {grid-template-columns:1fr;} .olt-card__body {padding:20px;} }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after {scroll-behavior:auto!important;animation:none!important;transition:none!important;} }
/* Integration safeguards: preserve filtering and avoid legacy card rules. */
.olt-card,.olt-card *{box-sizing:border-box}
.olt-card[hidden]{display:none!important}
.olt-grid{margin-top:20px;margin-bottom:28px}
.olt-card{text-align:left;align-items:stretch;box-shadow:0 8px 25px #24415110}
.olt-card__title,.olt-card__summary{text-align:left}
.olt-card__secondary{min-height:24px;margin-top:10px;text-align:center;font:13px/1.5 Arial,sans-serif}
.olt-card__download{color:var(--olt-navy);text-decoration:underline;text-underline-offset:3px}
.olt-card__download:focus-visible{outline:3px solid #9a530d;outline-offset:3px}
.olt-card__art img{max-width:100%;max-height:100%}
/* Keep the media frame exactly 4:3: intrinsic image height must not expand it. */
.olt-card__art{position:relative;flex:0 0 auto;padding:0;min-height:0;aspect-ratio:4/3}
.olt-card__art img{position:absolute;inset:16px;width:calc(100% - 32px);height:calc(100% - 32px);object-fit:contain}
