/* Alphabetical index */
.alpha-index {
margin: 20px 0;
padding: 10px;
background-color: #fff9c4;
border-radius: 6px;
font-family: "Times New Roman", Times, serif;
}

.alpha-index strong {
display: block;
margin-bottom: 6px;
}

.alpha-index a {
margin-right: 10px;
color: #003366;
text-decoration: none;
font-size: 0.95em;
}

.alpha-index a:hover {
text-decoration: underline;
}

/* Photo grid */
.photo-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 20px;
margin-top: 20px;
}

.photo-card {
background: #f8f8f8;
padding: 12px;
text-align: center;
border-radius: 6px;
box-shadow: 0 0 4px rgba(0,0,0,0.08);
font-family: "Times New Roman", Times, serif;
position: relative;
overflow: hidden;
}

.photo-card img {
width: 150px;
border: 1px solid #666;
margin-bottom: 8px;
}

/* Hover effects */
.photo-card:hover {
transform: translateY(-4px);
box-shadow: 0 4px 10px rgba(0,0,0,0.15);
transition: 0.25s ease;
}

.photo-card img:hover {
border-color: #00bfff;
}

/* Titles and text */
.photo-title {
font-weight: bold;
margin-bottom: 4px;
}

.photo-summary {
font-size: 0.95em;
margin-bottom: 4px;
}

.photo-more-toggle {
color: #003366;
cursor: pointer;
font-size: 0.9em;
text-decoration: underline;
}

.photo-full {
font-size: 0.9em;
margin-top: 6px;
text-align: left;
}

@media (max-width: 900px) {
.sidebar-index {
position: static !important;
width: auto;
max-height: none;
border-right: none;
border-bottom: 2px solid #e0d98c;
margin-bottom: 20px;
transform: none !important;
top: auto !important;
left: auto !important;
}

.main-content {
margin-left: 0 !important;
}
}
/* Floating left index — vertically centered */
.sidebar-index {
position: fixed;
top: 50%;
left: 0;
transform: translateY(-50%);
width: 200px;
max-height: 80vh;
overflow-y: auto;
background-color: #fff9c4;
border-right: 2px solid #e0d98c;
padding: 12px;
font-family: "Times New Roman", serif;
font-size: 0.95em;
line-height: 1.4em;
z-index: 1000;
}

.sidebar-index strong {
display: block;
margin-bottom: 8px;
font-size: 1.05em;
}

.sidebar-index a {
display: block;
margin-bottom: 4px;
color: #003366;
text-decoration: none;
}

.sidebar-index a:hover {
text-decoration: underline;
}

/* Shift main content right to make room */
.main-content {
margin-left: 220px;
}

/* Mobile: sidebar becomes top block */
@media (max-width: 900px) {
.sidebar-index {
position: static;
width: auto;
max-height: none;
border-right: none;
border-bottom: 2px solid #e0d98c;
margin-bottom: 20px;
}
.main-content {
margin-left: 0;
}
}
