/* =========================================================
   Global reset & base
   ========================================================= */

html, body {
  margin: 0;  
  padding: 0;
}

body {
	background-color: #f1f1f1;
	margin: 0;
	padding-top: 50px; /* prevents overlap */
}

/* =========================================================
   Layout helpers
   ========================================================= */

.page-content {
  margin-top: 64px;
}

.biob-hero {
  padding-top: 48px;
  padding-bottom: 16px;
}

.visor-section {
  padding-top: 8px;
}

.biob-grid ul {
  margin: 20px auto;
}

.biob-grid li {
  text-align: center;
  font-size: 1.1em;
  margin: 6px 0;
}

.biob-grid li span {
  font-size: 0.9em;
  color: #666;
  margin-left: 6px;
}
.dinner-list {
  column-fill: balance;
  column-count: 3;
  column-gap: 2em;
  max-width: 900px;
  margin: 20px auto;
  display: block !important;   /* 👈 override flex */
}

.dinner-list li {
  list-style: none;
  text-align: left;
  margin: 6px 0;
  break-inside: avoid;
}

.dinner-list strong {
  display: inline-block;
  min-width: 160px;   /* aligns names nicely */
}

.dinner-list .years {
  color: #666;
  margin-left: 6px;
}

.biob-grid ul.dinner-list {
  max-width: 900px;   /* override the 500px limit */
}

.photo-frame { position: relative; }
.pdf-badge {
  position: absolute;
  top: 8px;
  right: 8px;
  padding: 2px 8px;
  background: rgba(0,0,0,0.75);
  color: #fff;
  font-size: 12px;
  border-radius: 4px;
}

/* =========================================================
   Typography helpers
   ========================================================= */

.lede {
  background: yellow;
  margin-bottom: 0;
}

/* =========================================================
   GRID & CARDS (cleaned + unified)
   ========================================================= */

.biob-grid {
  display: block;                 /* use W3 layout */
}

/* Ensure cards fill height evenly */
.biob-grid .w3-card {
  height: 100%;
  display: flex;
  text-align: center;       /* 👈 ensure all captions centred */
  flex-direction: column;
  justify-content: space-between;
}

/* ================================
   Smart photo grid layout (Option A)
   ================================ */

.photo-frame {
  height: 220px;              /* consistent grid height */
  display: flex;
  align-items: center;        /* vertical centering */
  justify-content: center;    /* horizontal centering */
  background: #f5f5f5;        /* subtle background */
  width: 100%;                /* 👈 IMPORTANT */
  padding: 10px;
  overflow: hidden;
}

/* Image inside frame */
.photo-thumb {
  max-width: 100%;
  max-height: 100%;
  height: auto;
  width: auto;
  display: block;
}

/* Optional: constrain very tall portrait images */
.photo-card img {
  max-width: 100%;
  max-height: 260px;             /* keeps grid tidy */
  height: auto;
  display: block;
  margin: 0 auto;
}

/* Titles */
.biob-grid .w3-card h3 {
  height: 2.5em;
  line-height: 1.25;
  margin: 10px;
  overflow: hidden;
}

/* =========================================================
   VISOR (unchanged behaviour, cleaned)
   ========================================================= */

.biob-grid .thumb-frame {
  aspect-ratio: 215 / 330;
  background: #eee;
  display: block;
  overflow: hidden;
  position: relative;
  width: 100%;
}

.biob-grid .thumb-img {
  width: 100%;
  height: 100%;
  object-fit: contain;   /* full cover visible */
  display: block;
}

/* =========================================================
   Menu & navigation
   ========================================================= */

.w3-dropdown-content {
  background-color: #ffeb3b !important;
}

.w3-dropdown-content .w3-bar-item {
  background-color: #ffeb3b;
  color: #000;
}

.w3-dropdown-content .w3-bar-item:hover,
.w3-dropdown-content .w3-button:hover {
  background-color: #fdd835;
}

.w3-top {
  position: sticky;
  top: 0;
  z-index: 1000;
}

/* =========================================================
   Forms
   ========================================================= */

.biob-form {
  background: #f1f1f1;
}

input:required,
select:required,
textarea:required {
  background-color: #fffbe6;
}

input:required:focus,
select:required:focus,
textarea:required:focus {
  background-color: #fff3c4;
}

label.required::after {
  content: " *";
  color: #b8860b;
}

/* =========================================================
   Memoriam / Roll of Honour
   ========================================================= */

.memorial-img {
  display: block;
  width: 220px;
  height: auto;
}

.memorial-item {
  display: inline-block;
  margin: 10px;
  position: relative;
}

/* Overlay title */
.display_title {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 8px;
  background: rgba(0, 0, 0, 0.7);
  color: #fff;
  font-size: 0.9em;
  line-height: 1.3;
  height: 5.2em;
  overflow: hidden;
}

/* Roll layout */

.roll-of-honour {
  list-style: none;
  padding-left: 0;

  column-width: 22em;
  column-gap: 3em;
  column-rule: 1px solid rgba(0,0,0,0.15);
}

.roll-of-honour li {
  padding: 6px 0;
  break-inside: avoid;
}

/* Image containment fix */
.roll-item {
  display: block;
  box-sizing: border-box;
  overflow: hidden;
  text-align: center;
  margin-bottom: 20px;
}

.roll-item img {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  height: auto;
}

	@media print {

		.no-print {
			display: none !important;
		}

		body {
			margin: 0;
			padding-top: 0;
			background: red !important;
		}

		.print-area {
			width: 100%;
			box-shadow: none !important;
			border: none !important;
		}

		.print-area img {
			max-width: 100% !important;
			height: auto !important;
		}

		.print-only {
			display:block;
		}
		
/*
		.facebox {
			display:none !important;
		}
*/
	}

		.print-only {
			display:none;
		}

#siteAnnouncement {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background: #004080;       /* main site colour (change this) */
  color: #ffffff;
  padding: 12px 50px 12px 20px;
  font-size: 16px;
  text-align: center;
  z-index: 9999;
  border-bottom: 2px solid #002a55;
  transition: opacity 0.8s;
}

#siteAnnouncement_close {
  position: absolute;
  right: 15px;
  top: 8px;
  font-size: 22px;
  font-weight: bold;
  cursor: pointer;
}

.print-caption {
    font-size: 8pt;
}

/* =========================================================
   Responsive adjustments
   ========================================================= */

@media (max-width: 900px) {
  .roll-of-honour {
    columns: auto !important;
    column-rule: none;
  }
}

@media (max-width: 600px) {
  .roll-of-honour {
    column-count: 1 !important;
    column-rule: none !important;
  }
}

@media (max-width: 700px) {
  .dinner-list {
    column-count: 2;
  }
}

@media (max-width: 500px) {
  .dinner-list {
    column-count: 1;
  }
}
