/* Shared reunion library, accounts and progressively enhanced photo galleries. */
.reunion-main {max-width:1120px;}
.reunion-intro {max-width:76ch;line-height:1.85;margin:1.8rem 0 2.5rem;}
.reunion-intro p+p {margin-top:1.2rem;}
.reunion-index {display:flex;flex-wrap:wrap;gap:.65rem 1.5rem;border-block:1px solid #cabfae;padding:1rem 0;margin:2rem 0;}
.reunion-index a,.reunion-main a {color:var(--red);text-underline-offset:.2em;}
.reunion-main a:focus-visible,dialog button:focus-visible,dialog a:focus-visible {outline:3px solid var(--red);outline-offset:5px;}
.reunion-group {margin-block:3.5rem;scroll-margin-top:1rem;}
.reunion-group>h2 {border-bottom:2px solid var(--red);padding-bottom:.65rem;}
.reunion-library {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.2rem 1.6rem;margin-top:1.6rem;}
.reunion-card {border-bottom:1px solid #cabfae;padding-bottom:1.3rem;min-width:0;}
.reunion-card>a {display:flex;align-items:center;justify-content:center;height:180px;background:#e8e0d2;padding:.65rem;}
.reunion-card img {max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;}
.reunion-card h3 {font-family:Georgia,serif;font-size:1.3rem;line-height:1.35;margin:.4rem 0 .7rem;}
.reunion-card .eyebrow {margin-top:1rem;}
.reunion-card p {line-height:1.55;}
.reunion-photo-count {color:#6c5e50;font-size:.94rem;border-top:1px solid #cabfae;padding-top:1rem;}
.reunion-photos {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.75rem 2rem;margin-top:2rem;align-items:start;}
.reunion-photo {margin:0;min-width:0;}
.reunion-photo:first-of-type,.reunion-photo-heading,.small-gallery .reunion-photo {grid-column:1/-1;}
.reunion-photo-heading {border-top:1px solid #cabfae;padding-top:1.5rem;margin:0;scroll-margin-top:1rem;}
.enlarge-photo {display:block;width:fit-content;max-width:100%;margin:auto;text-decoration:none;}
.enlarge-photo img {display:block;width:auto;height:auto;max-width:100%;max-height:520px;border:1px solid #c8bbaa;background:#e8e0d2;}
.enlarge-photo span {display:block;font-size:.85rem;text-align:right;padding-top:.35rem;}
.reunion-photo figcaption {max-width:80ch;margin:1rem auto 0;font-size:1rem;line-height:1.7;overflow-wrap:break-word;}
.reunion-photo figcaption p {margin:.7rem 0;}
.reunion-photo:first-of-type {max-width:900px;justify-self:center;width:100%;}
.small-gallery .reunion-photo {max-width:900px;justify-self:center;width:100%;}
.print-gallery-note {display:none;}
#reunion-dialog {width:min(1120px,96vw);max-height:94dvh;overflow:auto;padding:1.2rem;background:#f6f2e9;color:#292723;border:1px solid #887564;}
#reunion-dialog::backdrop {background:rgb(24 20 16 / .85);}
.reunion-dialog-bar,.reunion-dialog-controls {display:flex;gap:1rem;align-items:center;justify-content:space-between;}
.reunion-dialog-bar {position:sticky;top:-1.2rem;background:#f6f2e9;padding-block:.6rem;z-index:1;}
.reunion-dialog-bar h2 {font-size:1.1rem;margin:0;}
#reunion-dialog button {font:inherit;min-height:44px;padding:.5rem .8rem;background:#f6f2e9;border:1px solid var(--red);color:var(--red);cursor:pointer;}
#reunion-dialog button:disabled {opacity:.4;cursor:default;}
.reunion-dialog-image img {display:block;max-width:100%;height:auto;margin:1rem auto;}
#reunion-photo-caption {max-width:80ch;margin:1.5rem auto;line-height:1.7;}
#photo-position {font-size:.9rem;text-align:center;}
@media(max-width:900px){.reunion-library {grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px){.reunion-library,.reunion-photos {grid-template-columns:1fr;}.reunion-library{gap:1.8rem;}.reunion-card>a{height:210px;}.reunion-photos {gap:2rem;}.reunion-index{gap:.8rem 1rem;}.reunion-dialog-controls{gap:.4rem;}#reunion-dialog{padding:.75rem;}.reunion-dialog-bar{top:-.75rem;}#reunion-dialog button{font-size:.9rem;padding:.5rem;}}
@media print {
 .preview-notice,.site-header,.site-footer,.breadcrumbs,.reunion-index,.history-return,.reunion-photo-count,dialog,.enlarge-photo span {display:none!important;}
 .reunion-main {width:100%;max-width:none;margin:0;padding:0;}
 .reunion-intro {max-width:none;margin:1rem 0;}
 .reunion-photos {display:block;}
 .reunion-photo,.reunion-photo-heading {display:none;}
 .reunion-photo.print-photo {display:block;margin:1.5rem 0;}
 .reunion-photo img {max-height:3.3in;max-width:100%;}
 .reunion-photo figcaption {font-size:10pt;line-height:1.45;}
 .reunion-photo p {break-inside:avoid;}
 .reunion-photo a {color:inherit;text-decoration:none;}
 .print-gallery-note {display:block;font-size:9pt;overflow-wrap:anywhere;}
 .reunion-library {display:block;}.reunion-card {break-inside:avoid;padding:.5rem 0;}.reunion-card>a {display:none;}
}

.reunion-transition {grid-column:1/-1;max-width:76ch;line-height:1.8;}
@media print {.reunion-transition{display:none;}}

/* Class-first collection navigation; each class has one equally sized card. */
.reunion-feature {border-block:1px solid #cabfae;border-left:3px solid var(--red);padding:1.5rem 2rem;margin:2rem 0;background:#eee7db;}
.reunion-feature h2 {margin:.5rem 0;}.reunion-feature p:last-child{margin-bottom:0;line-height:1.6;}
.reunion-classes .reunion-card .eyebrow:empty {display:none;}
.reunion-classes .reunion-card h3 {margin-top:1rem;}
@media(max-width:600px){.reunion-feature{padding:1rem 1.2rem;}}
@media print {.reunion-feature{background:none;break-inside:avoid;}.reunion-classes{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;}}
