/* Compact gallery presentation; replaces the previous gallery.css. */
body.crf-gallery { margin:0; background:#080808; color:#eee; font:15px/1.5 Arial,Helvetica,sans-serif; }
.crf-gallery .gallery-shell { box-sizing:border-box; max-width:1500px; padding:20px 24px; margin:0 auto; }
.gallery-shell * { box-sizing:border-box; }
.gallery-shell a { color:#ffa323; text-decoration:none; }
.gallery-shell a:hover { color:#ffd08a; text-decoration:underline; }
.gallery-shell a:focus-visible,.gallery-shell button:focus-visible { outline:3px solid #ffa323; outline-offset:4px; }
/* Legacy breadcrumb markup contains explicit black font colors. */
.crf-gallery .gallery-breadcrumb,
.crf-gallery .gallery-breadcrumb * { color:#ccc !important; background:transparent !important; }
.crf-gallery .gallery-breadcrumb a,
.crf-gallery .gallery-breadcrumb a * { color:#ffa323 !important; }
.crf-gallery .gallery-breadcrumb a:hover,
.crf-gallery .gallery-breadcrumb a:hover * { color:#ffd08a !important; }
.gallery-breadcrumb { font-size:13px; line-height:1.6; margin-bottom:14px; overflow-wrap:anywhere; }
.gallery-heading { border-bottom:1px solid #3b3b3b; padding:0 0 14px; margin-bottom:14px; }
.gallery-eyebrow { color:#ffa323; font-size:11px; font-weight:bold; letter-spacing:.16em; margin:0 0 5px; }
.gallery-heading h1 { font-size:clamp(26px,3vw,36px); margin:0; line-height:1.2; }
.gallery-heading>p:last-child { color:#bbb; margin:7px 0 0; font-size:14px; }
.gallery-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:16px 0; text-align:left; }
.gallery-card { min-width:0; overflow:hidden; background:#222; border:1px solid #414141; border-radius:8px; }
/* Fixed, shallow preview area: do not reserve a full-width 3:2 stage. */
.crf-gallery .gallery-image { display:flex; align-items:center; justify-content:center; height:114px; min-height:0; aspect-ratio:auto; background:#111; padding:7px; }
.crf-gallery .gallery-image img { display:block; width:auto; height:auto; max-width:100%; max-height:100px; object-fit:contain; }
.gallery-details { padding:10px 12px; font-size:12px; line-height:1.4; }
.gallery-details h2 { font-size:15px; line-height:1.3; margin:0 0 5px; }
.gallery-details p { margin:2px 0; overflow-wrap:anywhere; }
.gallery-railroad { color:#eee; font-weight:bold; }
.gallery-location { color:#bbb; }
.gallery-meta { display:flex; flex-wrap:wrap; gap:4px 12px; color:#aaa; font-size:11px; margin-top:7px; padding-top:7px; border-top:1px solid #444; }
.gallery-comments { margin-top:6px; font-size:12px; }
.gallery-page-button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:8px 16px; margin:4px 8px 4px 0; border:1px solid #ffa323; border-radius:6px; background:#272018; font-weight:bold; }
.gallery-empty { padding:24px; border:1px solid #444; border-radius:8px; background:#222; }
.gallery-map-frame { width:100%; border-radius:8px; overflow:hidden; margin-top:15px; }
.gallery-map-frame td { padding:0; }
.gallery-map-message,.gallery-map-actions { padding:8px 12px; }
.gallery-map-actions button { min-height:44px; border:1px solid #777; border-radius:5px; }
@media(max-width:1100px) { .gallery-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:800px) { .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:480px) { .crf-gallery .gallery-shell { padding:14px; } .gallery-grid { grid-template-columns:minmax(0,1fr); gap:12px; } }
@media(prefers-reduced-motion:no-preference) { .gallery-card { transition:border-color .15s ease; } .gallery-card:hover { border-color:#ffa323; } }
