/* Illustrated reference articles retain the publication's existing type and colours. */
.library-article-hero .article-opening{display:block;max-width:1120px;margin-inline:auto}
.library-article-hero .article-opening-copy{max-width:850px;margin:0 auto 28px}
.library-article-hero .article-opening h1{max-width:22ch;font-size:clamp(2.25rem,4.7vw,4.5rem)}
.library-article-hero .article-opening-image{margin:32px 0 0;max-width:none}
.library-article-hero .article-cover img{width:100%;height:auto;max-height:650px;object-fit:cover;aspect-ratio:16/9}
.library-article-hero .article-cover figcaption{padding:12px 0;line-height:1.7}
.library-article-context{display:flex;justify-content:center;gap:10px 24px;flex-wrap:wrap;margin-top:18px;font-size:.8rem;color:var(--muted)}
.library-article-context a{font-weight:600;color:var(--brand);min-height:24px}
.library-photo{margin:38px 0;clear:both}
.library-photo img{display:block;width:100%;height:auto;max-height:640px;object-fit:contain;background:var(--surface);border-radius:2px}
.library-photo figcaption{font-size:.8rem;line-height:1.65;color:var(--muted);padding-top:12px}
.library-photo figcaption>span{display:block}
.library-photo-credit{font-size:.7rem;line-height:1.7;color:var(--muted)}
.library-photo-credit a{color:inherit;text-decoration-thickness:1px;text-underline-offset:3px}
.library-products{padding:28px 0;margin:38px 0;border-block:1px solid var(--line)}
.library-products>.eyebrow{font-size:.7rem;letter-spacing:.12em;margin:0 0 14px}
.library-products>p:not(.eyebrow){font-size:.92rem;line-height:1.7}
.library-product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-block:22px}
.library-product-card{padding:20px 16px;border:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;min-width:0;border-radius:3px}
.library-product-card h3{font:500 1.3rem/1.2 var(--font-display);margin:0 0 16px}
.library-product-card p,.library-product-card li,.library-product-card dd{font-size:.8rem;line-height:1.6}
.library-product-card dl{margin:0 0 10px}
.library-product-card dt{font-size:.68rem;font-weight:700;margin-top:10px}
.library-product-card dd{margin:4px 0 0;color:var(--ink-soft)}
.library-product-card ul{padding-left:16px;margin:10px 0 22px}
.library-product-card .button,.library-product-card>.text-link{font-size:.8rem;min-height:44px;justify-content:space-between;margin-top:auto;white-space:normal}
.library-product-card .button{padding:10px}
.library-product-card small{font-size:.68rem;margin-top:8px;color:var(--muted)}
.library-product-card .library-product-source{font-size:.67rem;color:var(--muted);margin:12px 0 0}
.library-products .library-product-note{font-size:.75rem;color:var(--muted);margin-bottom:0}
.reference-directory{padding-block:24px 64px}
.reference-directory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}
.reference-category-card{display:grid;grid-template-columns:160px 1fr;border-bottom:1px solid var(--line);padding-bottom:26px;gap:24px;min-width:0}
.reference-category-card img{width:100%;height:200px;object-fit:cover;border-radius:2px}
.reference-category-card .eyebrow{font-size:.68rem;margin:0 0 10px}
.reference-category-card h2{font:500 1.8rem/1.12 var(--font-display);margin:0 0 14px}
.reference-category-card h2 a{text-decoration:none;color:var(--ink)}
.reference-category-card p{font-size:.85rem;line-height:1.7;color:var(--ink-soft)}
.reference-category-card .text-link{font-size:.8rem;min-height:44px;display:inline-flex;align-items:center;gap:12px}
.reference-intro{max-width:800px;margin-inline:auto;padding:30px 0 45px;font-size:1rem;line-height:1.85}
.reference-links{display:flex;flex-wrap:wrap;gap:12px 24px;padding-block:24px;border-top:1px solid var(--line)}
.reference-links a{font-size:.85rem;min-height:44px;display:inline-flex;align-items:center}
@media(max-width:1000px){.reference-category-card{grid-template-columns:120px 1fr;gap:18px}.reference-category-card h2{font-size:1.5rem}.library-product-grid{grid-template-columns:1fr}.library-product-card{padding:24px}.library-product-card h3{font-size:1.5rem}.library-product-card .button{max-width:280px}}
@media(max-width:700px){.reference-directory-grid{grid-template-columns:1fr;gap:28px}.reference-category-card{grid-template-columns:110px 1fr}.reference-category-card img{height:170px}.library-article-hero .article-opening-copy{margin-bottom:22px}.library-article-hero .article-opening h1{font-size:2.35rem}.library-article-hero .article-opening-image{margin-top:24px}.library-article-context{justify-content:flex-start;font-size:.73rem}.library-photo{margin-block:28px}.library-photo figcaption{font-size:.74rem}.library-photo-credit{font-size:.65rem}.library-products{padding-block:22px}.reference-intro{padding-block:20px 30px}.reference-directory{padding-bottom:40px}}
@media print{.library-product-card .button,.library-product-card>.text-link{display:none}.library-product-grid{display:block}.library-product-card,.library-photo{break-inside:avoid}.library-photo img{max-height:300px}.library-article-hero .article-cover img{max-height:320px}}
.library-photo-attribution{font:400 .65rem/1.7 var(--font-body);color:var(--muted);margin-top:5px;overflow-wrap:anywhere}
.library-photo-attribution summary{cursor:pointer;min-height:28px;display:list-item}
.library-photo-attribution p{font:inherit;margin:6px 0}

/* Compact credits stay outside image links and remain available to keyboard users. */
.library-photo-credit-link{display:inline-flex;align-items:center;min-height:28px;font:400 .7rem/1.5 var(--font-body);color:var(--muted);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.library-photo-credit-link:focus-visible{outline:2px solid var(--brand);outline-offset:4px}
.editorial-card-meta .library-photo-credit-link,.browse-card-footer .library-photo-credit-link{margin-left:auto;flex-shrink:0}
.editorial-card-meta:has(.library-photo-credit-link),.browse-card-footer:has(.library-photo-credit-link){flex-wrap:wrap;column-gap:12px}
.library-photo-credit-line{margin-top:4px}
#photo-credit-featured{scroll-margin-top:110px}

/* The reading column has its own typography; cards and credit details need smaller controls. */
.editorial-reading .article-body .library-product-card h3{font:500 1.3rem/1.25 var(--font-display);margin:0 0 16px}
.editorial-reading .article-body .library-product-card p,.editorial-reading .article-body .library-product-card li,.editorial-reading .article-body .library-product-card dd{font-size:.85rem;line-height:1.65}
.editorial-reading .article-body .library-product-card p{margin:0 0 14px}
.editorial-reading .article-body .library-product-card ul{padding-left:16px;margin:10px 0 22px}
.editorial-reading .article-body .library-product-card li{margin-bottom:8px;padding-left:0}
.editorial-reading .article-body .library-product-card .library-product-source{font-size:.7rem;margin:12px 0 0}
.editorial-reading .article-body .library-photo-attribution p{font:inherit;margin:6px 0}
.library-product-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.reference-start{margin-top:28px;padding:24px;border-left:3px solid var(--brand);background:var(--surface)}
.reference-start .eyebrow{font-size:.7rem;margin:0 0 10px}
.reference-start h2{font:500 1.5rem/1.25 var(--font-display);margin:0 0 12px}
.reference-start p:last-child{font-size:.9rem;margin:0}
@media(max-width:1000px){.library-product-grid{grid-template-columns:1fr}}

.editorial-reading .article-body .library-retailer-links{padding-top:20px;border-top:1px solid var(--line);margin:24px 0}
.editorial-reading .article-body .library-retailer-links h3{font:500 1.1rem/1.3 var(--font-display);margin:0 0 10px}
.editorial-reading .article-body .library-retailer-links p{font-size:.85rem;line-height:1.65;margin:0 0 10px}
.editorial-reading .article-body .library-retailer-links ul{list-style:none;display:flex;gap:8px 24px;flex-wrap:wrap;padding:0;margin:0}
.editorial-reading .article-body .library-retailer-links li{padding:0;margin:0}
.library-retailer-links a{display:inline-flex;align-items:center;min-height:44px;font-size:.85rem}

@media print{.library-retailer-links{display:none}}

.library-photo-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:38px 0}
.library-photo-pair .library-photo{margin:0;min-width:0}
.library-photo-pair .library-photo img{aspect-ratio:4/3;object-fit:contain;max-height:340px}
@media(max-width:640px){.library-photo-pair{grid-template-columns:1fr;gap:28px;margin:28px 0}.library-photo-pair .library-photo img{aspect-ratio:auto;max-height:640px}}
