:root{--blue:#073b94;--blue2:#0e58bd;--deep:#031b50;--gold:#f6c400;--ink:#17233a;--paper:#f4f7fb;--white:#fff;--muted:#66758a;--red:#b51f2e;--line:#dfe7f2}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);line-height:1.55}a{color:var(--blue2)}.wrap{width:min(1180px,92%);margin:auto}.narrow{max-width:920px}.site-header{background:linear-gradient(180deg,#031b50,#062f80);border-bottom:5px solid var(--gold)}.header-inner{display:flex;align-items:center;gap:28px;justify-content:space-between;padding:18px 0}.brand img{display:block;width:min(470px,50vw);max-height:190px;object-fit:contain}.site-header nav{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.site-header nav a{color:white;text-decoration:none;font-weight:700;padding:9px 10px;border-radius:6px}.site-header nav a:hover{background:rgba(255,255,255,.12)}.hero{background:linear-gradient(135deg,#0b4eaa,#062f80);color:white;padding:70px 0 76px}.hero h1{font-size:clamp(2.2rem,5vw,4.3rem);line-height:1.02;margin:.1em 0}.hero .lead{font-size:1.2rem;max-width:850px}.hero-kicker{color:#d8e5ff;text-transform:uppercase;letter-spacing:.12em;font-weight:800}.buttons{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.btn{display:inline-block;background:var(--gold);color:#08265f!important;text-decoration:none;font-weight:800;border:0;border-radius:7px;padding:12px 18px;cursor:pointer}.btn.secondary{background:white}.btn.danger{background:var(--red);color:white!important}.small-btn{padding:7px 11px;font-size:.88rem}.section{padding:55px 0}.disclaimer-section{padding-top:0}.activity-section{background:#eaf1fa}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card{background:white;border-radius:12px;padding:24px;box-shadow:0 8px 25px rgba(20,45,85,.08);border:1px solid var(--line)}.card h2,.card h3{color:var(--blue);margin-top:0}.legacy-list{columns:2;column-gap:36px;padding-left:20px}.notice{background:#fff7cf;border-left:5px solid var(--gold);padding:16px 18px;border-radius:6px;margin:14px 0}.form-card{max-width:760px;margin:40px auto;background:white;padding:28px;border-radius:12px;box-shadow:0 8px 25px rgba(20,45,85,.08)}label{display:block;font-weight:700;margin-top:15px}input,textarea,select{width:100%;padding:11px;border:1px solid #b9c7d8;border-radius:6px;font:inherit;background:white}textarea{min-height:130px}.small{font-size:.9rem;color:var(--muted)}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.gallery img,.swag img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px}.photo-card details{border-top:1px solid var(--line);padding-top:10px}.photo-card summary{cursor:pointer;color:var(--blue);font-weight:700}.comments{margin-top:12px}.comment{border-top:1px solid #edf1f6;padding:12px 0}.comment p{margin:.35em 0}.post{background:white;padding:24px;border-radius:10px;margin:0 0 18px;border:1px solid var(--line)}.post-meta{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:.9rem}.post-body{font-size:1.02rem}.post-actions{text-align:right;margin-top:12px}.inline-form{display:inline}.link-btn{border:0;background:none;color:var(--muted);text-decoration:underline;cursor:pointer;padding:0;font:inherit}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:25px}.page-head h1{margin-bottom:.2em}.forum-cats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:28px}.forum-cat{background:white;border:1px solid var(--line);border-radius:9px;padding:14px}.forum-cat strong,.forum-cat span{display:block}.forum-cat span{font-size:.9rem;color:var(--muted)}.topic-list{background:white;border:1px solid var(--line);border-radius:10px;overflow:hidden}.topic-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(150px,1fr) 75px;gap:15px;padding:14px 16px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);align-items:center}.topic-row:last-child{border-bottom:0}.topic-row:hover:not(.topic-head){background:#f8fbff}.topic-row strong,.topic-row span{display:block}.topic-row span{font-size:.86rem;color:var(--muted)}.topic-head{background:#eaf1fa;font-weight:800;color:var(--blue)}.forum-post h1{color:var(--blue)}.reply{margin-left:28px}.search-bar{display:flex;gap:10px;margin:20px 0 30px}.search-bar input{flex:1}.search-bar .btn{width:auto}.memorial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.memorial-card{display:flex;gap:16px;align-items:center;background:white;border:1px solid var(--line);border-radius:12px;padding:15px;text-decoration:none;color:var(--ink);box-shadow:0 6px 18px rgba(20,45,85,.06)}.memorial-card img,.portrait-placeholder{width:105px;height:125px;object-fit:cover;border-radius:8px;flex:0 0 auto}.portrait-placeholder{background:linear-gradient(135deg,#dbe6f6,#f5f8fc);display:flex;align-items:center;justify-content:center;text-align:center;color:var(--blue);font-weight:800}.memorial-card h3{margin:0;color:var(--blue)}.memorial-card p{margin:.2em 0}.memorial-detail{display:grid;grid-template-columns:260px 1fr;gap:32px;background:white;border:1px solid var(--line);border-radius:14px;padding:28px;margin-bottom:35px}.memorial-photo{width:100%;max-height:340px;object-fit:cover;border-radius:10px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--blue);font-weight:800}.memorial-detail h1{margin:.1em 0}.memorial-dates{font-size:1.25rem;color:var(--muted)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:15px}.member-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.check{display:flex;gap:10px;align-items:center}.check input{width:auto}.admin-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0 35px}.admin-summary div{background:white;border:1px solid var(--line);border-radius:10px;padding:18px;text-align:center}.admin-summary strong{display:block;font-size:2rem;color:var(--blue)}.admin-summary span{font-size:.85rem;color:var(--muted)}.table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;background:white;margin-bottom:35px}.admin-table th,.admin-table td{padding:10px;border-bottom:1px solid #e1e7ef;text-align:left;vertical-align:top}.admin-table th{background:#eaf1fa;color:var(--blue)}.empty{padding:20px;color:var(--muted);text-align:center}footer{background:#081a3a;color:#dbe6f8;margin-top:50px;padding:30px 0;font-size:.9rem}footer a{color:#ffe06b}
@media(max-width:900px){.header-inner{display:block;text-align:center}.brand img{width:min(520px,92vw);margin:auto}.site-header nav{justify-content:center;margin-top:14px}.grid,.gallery,.memorial-grid,.member-grid{grid-template-columns:1fr 1fr}.admin-summary{grid-template-columns:1fr 1fr}.memorial-detail{grid-template-columns:200px 1fr}}
@media(max-width:650px){.grid,.gallery,.memorial-grid,.member-grid,.forum-cats,.two-col{grid-template-columns:1fr}.legacy-list{columns:1}.hero{padding:45px 0}.page-head{display:block}.page-head .btn{margin-top:10px}.topic-row{grid-template-columns:1fr}.topic-head{display:none}.reply{margin-left:0}.memorial-detail{grid-template-columns:1fr}.memorial-photo{max-width:280px}.admin-summary{grid-template-columns:1fr 1fr}.search-bar{display:block}.search-bar .btn{margin-top:8px}}

/* V2.2 global hero banner -------------------------------------------------- */
.global-hero{position:relative;isolation:isolate;min-height:270px;display:flex;align-items:flex-end;overflow:hidden;background:linear-gradient(135deg,#0b4eaa,#062f80)}
.global-hero.has-images{min-height:340px;background:#061f51}
.hero-slides,.hero-shade{position:absolute;inset:0}
.hero-slides{z-index:-3;background:#061f51}
.hero-slide{position:absolute;inset:-2px;background-position:center;background-size:cover;background-repeat:no-repeat;opacity:0;transform:scale(1.025);animation-name:botHeroFade;animation-timing-function:ease-in-out;animation-iteration-count:infinite}
.hero-slide:first-child{opacity:1}
.hero-shade{z-index:-2;background:linear-gradient(90deg,rgba(2,18,52,.88) 0%,rgba(2,24,66,.64) 44%,rgba(2,20,56,.28) 74%,rgba(2,18,52,.48) 100%)}
.global-hero-content{padding:44px 0 48px;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.42)}
.global-hero h1{margin:.08em 0 .12em;font-size:clamp(2rem,4vw,3.8rem);line-height:1.04;color:#fff}
.global-hero .hero-kicker{margin:0;color:#ffe36d;text-transform:uppercase;letter-spacing:.13em;font-weight:800;font-size:.82rem}
.hero-subtitle{margin:.5em 0 0;max-width:820px;font-size:clamp(1rem,1.8vw,1.28rem);font-weight:600}
.home-actions{background:#fff;border-bottom:1px solid var(--line)}
.home-actions .buttons{margin:0;padding:20px 0}
@keyframes botHeroFade{0%{opacity:0;transform:scale(1.035)}3%{opacity:1}26%{opacity:1}31%{opacity:0;transform:scale(1)}100%{opacity:0;transform:scale(1)}}
@media(max-width:900px){.global-hero.has-images{min-height:290px}.global-hero-content{padding:34px 0 38px}}
@media(max-width:650px){.global-hero,.global-hero.has-images{min-height:230px}.global-hero-content{padding:28px 0 30px}.hero-shade{background:rgba(2,20,56,.58)}.global-hero h1{font-size:2rem}}
@media(prefers-reduced-motion:reduce){.hero-slide{animation:none!important;opacity:0}.hero-slide:first-child{opacity:1;transform:none}}


/* V2.3 compact navigation + image-only internal heroes -------------------- */
/* Keep the dark header only as tall as needed for the logo/navigation row. */
.header-inner{
  min-height:88px;
  padding:7px 0;
  gap:22px;
}
.brand{display:flex;align-items:center;flex:0 0 auto}
.brand img{
  width:225px;
  max-height:82px;
  object-fit:contain;
}
.site-header nav{
  align-items:center;
  row-gap:4px;
}
.site-header nav a{
  padding:8px 9px;
}

/* The hero now begins immediately below the compact nav bar. */
.global-hero,
.global-hero.has-images{
  min-height:300px;
  align-items:flex-end;
}

/* Internal pages use the photography as a clean banner only. Page titles
   remain in each page's normal content area below the hero. */
.global-hero:not(:has(.home-hero-copy)) .hero-shade{
  background:linear-gradient(90deg,rgba(2,18,52,.26),rgba(2,18,52,.10));
}

/* Home retains the historical/site message over the photography. */
.home-hero-copy{
  padding:38px 0 42px;
}

@media(max-width:900px){
  .header-inner{min-height:auto;padding:8px 0}
  .brand img{width:205px;max-height:76px}
  .site-header nav{margin-top:6px}
  .global-hero,.global-hero.has-images{min-height:260px}
}
@media(max-width:650px){
  .brand img{width:185px;max-height:70px}
  .global-hero,.global-hero.has-images{min-height:220px}
  .home-hero-copy{padding:26px 0 30px}
}

/* V2.4 multi-photo + short-video gallery ---------------------------------- */
.gallery-albums{align-items:start}
.album-card{overflow:hidden}
.album-media{display:grid;grid-template-columns:1fr;gap:6px;margin:-24px -24px 18px;background:#071d42}
.album-media.multi{grid-template-columns:repeat(2,minmax(0,1fr))}
.media-tile{position:relative;min-width:0;background:#071d42;overflow:hidden}
.album-media.multi .media-tile:first-child:nth-last-child(3),
.album-media.multi .media-tile:first-child:nth-last-child(3)~.media-tile{min-height:170px}
.media-tile img,.media-tile video{display:block;width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;border-radius:0}
.media-tile video{background:#000}
.media-badge{position:absolute;left:8px;bottom:8px;background:rgba(4,18,49,.85);color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:4px 8px;font-size:.75rem;font-weight:800}
#submit-photo input[type=file]{padding:14px;background:#f7f9fc}
@media(max-width:650px){.album-media.multi{grid-template-columns:1fr}.media-tile img,.media-tile video{aspect-ratio:16/10}}


/* V2.4.1 Swag image lightbox --------------------------------------------- */
.swag-image-button{position:relative;display:block;width:100%;padding:0;margin:0 0 14px;border:0;background:none;cursor:zoom-in;border-radius:8px;overflow:hidden}
.swag-image-button img{display:block;margin:0}
.image-zoom-hint{position:absolute;right:8px;bottom:8px;background:rgba(3,27,80,.88);color:#fff;border-radius:999px;padding:5px 9px;font-size:.75rem;font-weight:800;opacity:0;transform:translateY(4px);transition:.18s ease}
.swag-image-button:hover .image-zoom-hint,.swag-image-button:focus-visible .image-zoom-hint{opacity:1;transform:none}
.swag-image-button:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
body.lightbox-open{overflow:hidden}
.image-lightbox{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;padding:28px}
.image-lightbox.open{display:flex}
.lightbox-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(0,8,25,.92);cursor:zoom-out}
.lightbox-stage{position:relative;z-index:2;margin:0;max-width:min(94vw,1500px);max-height:92vh;display:flex;flex-direction:column;align-items:center;gap:10px}
.lightbox-stage img{display:block;max-width:100%;max-height:84vh;width:auto;height:auto;object-fit:contain;border-radius:8px;box-shadow:0 20px 70px rgba(0,0,0,.5);background:#071d42}
.lightbox-stage figcaption{color:#fff;text-align:center;font-weight:700;text-shadow:0 2px 5px #000}
.lightbox-close{position:fixed;z-index:3;top:14px;right:20px;border:0;background:rgba(255,255,255,.14);color:#fff;width:46px;height:46px;border-radius:50%;font-size:2rem;line-height:1;cursor:pointer}
.lightbox-close:hover{background:rgba(255,255,255,.25)}
@media(max-width:650px){.image-lightbox{padding:14px}.lightbox-stage img{max-height:80vh}.image-zoom-hint{opacity:1;transform:none}}


/* V2.4.2 Gallery album lightbox navigation ------------------------------- */
.gallery-image-button{position:relative;display:block;width:100%;height:100%;padding:0;border:0;background:#071d42;cursor:zoom-in;overflow:hidden}
.gallery-image-button img{display:block;width:100%;height:100%;margin:0}
.gallery-image-button .image-zoom-hint{right:8px;bottom:8px}
.gallery-image-button:hover .image-zoom-hint,.gallery-image-button:focus-visible .image-zoom-hint{opacity:1;transform:none}
.gallery-image-button:focus-visible{outline:3px solid var(--gold);outline-offset:-3px}
.media-open{position:absolute;right:8px;top:8px;z-index:3;border:1px solid rgba(255,255,255,.45);background:rgba(3,27,80,.88);color:#fff;border-radius:999px;padding:6px 10px;font-size:.75rem;font-weight:800;cursor:zoom-in}
.media-open:hover,.media-open:focus-visible{background:#0b4eaa;outline:2px solid var(--gold)}
.lightbox-stage video{display:none;max-width:100%;max-height:84vh;width:auto;height:auto;background:#000;border-radius:8px;box-shadow:0 20px 70px rgba(0,0,0,.5)}
.lightbox-stage figcaption{display:flex;gap:14px;justify-content:center;align-items:center;min-height:24px}
.lightbox-counter{font-size:.85rem;color:#d8e3f8;font-weight:600;white-space:nowrap}
.lightbox-nav{position:fixed;z-index:4;top:50%;transform:translateY(-50%);display:none;align-items:center;justify-content:center;width:54px;height:72px;border:0;border-radius:10px;background:rgba(255,255,255,.14);color:#fff;font-size:2.25rem;line-height:1;cursor:pointer;user-select:none}
.lightbox-nav:hover,.lightbox-nav:focus-visible{background:rgba(255,255,255,.26);outline:2px solid var(--gold)}
.lightbox-prev{left:18px}.lightbox-next{right:18px}
@media(max-width:650px){.lightbox-nav{width:42px;height:58px;font-size:1.8rem}.lightbox-prev{left:5px}.lightbox-next{right:5px}.lightbox-stage{max-width:88vw}.lightbox-stage video{max-height:80vh}.gallery-image-button .image-zoom-hint{opacity:1;transform:none}}

/* V2.4.3 Remembering admin edit controls */
.memorial-top-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.memorial-top-actions p{margin:0}.current-memorial-photo{margin:18px 0;padding:16px;border:1px solid var(--line);border-radius:10px;background:#f8fbff}.current-memorial-photo img{display:block;max-width:220px;max-height:260px;object-fit:cover;border-radius:8px;margin:10px 0 14px}.admin-edit-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.danger-zone{max-width:760px;margin:28px auto 0;padding:22px;border:1px solid #e1a1a1;background:#fff5f5;border-radius:10px}.danger-zone h2{margin-top:0;color:var(--red)}
@media(max-width:650px){.memorial-top-actions{align-items:flex-start;flex-direction:column}}

/* V2.4.4 Forum rules ------------------------------------------------------ */
.forum-head-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.btn.secondary{background:#fff;color:var(--blue);border:1px solid #afbdd4}.btn.secondary:hover{background:#edf3fb}
.forum-rules-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 24px;padding:15px 18px;border-left:5px solid var(--gold);border-radius:8px;background:#f6f9fe;box-shadow:0 1px 0 rgba(10,41,88,.08)}
.forum-rules-summary div{display:flex;flex-direction:column;gap:3px}.forum-rules-summary strong{color:var(--blue);font-size:1rem}.forum-rules-summary span{color:#53647d;font-size:.92rem}
.text-button,.inline-rule-link{padding:0;border:0;background:none;color:var(--blue);font:inherit;font-weight:800;text-decoration:underline;cursor:pointer;white-space:nowrap}.text-button:hover,.inline-rule-link:hover{color:var(--red)}
.inline-rule-link{white-space:normal}
.forum-rules-dialog{width:min(720px,calc(100vw - 32px));max-height:90vh;padding:0;border:0;border-radius:14px;box-shadow:0 28px 80px rgba(0,0,0,.4);overflow:auto;background:#fff;color:#15243a}
.forum-rules-dialog::backdrop{background:rgba(2,14,38,.78);backdrop-filter:blur(2px)}
.forum-rules-modal{padding:26px 28px 24px}.forum-rules-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.forum-rules-modal-head h2{margin:0;color:var(--blue);font-size:1.85rem}.forum-rules-modal .eyebrow{margin:0 0 4px;color:var(--red);font-size:.74rem;font-weight:900;text-transform:uppercase;letter-spacing:.12em}
.forum-rules-close{cursor:pointer}.forum-rules-modal-head .forum-rules-close{flex:0 0 auto;width:40px;height:40px;border:0;border-radius:50%;background:#eef3fa;color:var(--blue);font-size:1.8rem;line-height:1}.forum-rules-modal-head .forum-rules-close:hover{background:#dce7f5}
.forum-rules-intro{margin:18px 0 8px;font-size:1.03rem;color:#45566f}
.forum-rules-list{margin:8px 0 18px;padding-left:0;list-style:none;counter-reset:forum-rule}.forum-rules-list li{counter-increment:forum-rule;position:relative;padding:13px 14px 13px 52px;border-bottom:1px solid #e8edf4}.forum-rules-list li::before{content:counter(forum-rule);position:absolute;left:8px;top:12px;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--blue);color:#fff;font-weight:900}.forum-rules-list strong,.forum-rules-list span{display:block}.forum-rules-list strong{margin-bottom:3px;color:#15365f}.forum-rules-list span{color:#596a80;line-height:1.45}.forum-rules-list .leafs-rule{margin-top:7px;border:1px solid #e7c94e;border-radius:8px;background:#fff9db}.forum-rules-list .leafs-rule::before{background:var(--red)}
.forum-rules-admin-note{margin:0;padding:14px 16px;border-radius:8px;background:#f0f4f9;color:#46576d;font-size:.9rem;font-style:italic}.forum-rules-footer{display:flex;justify-content:flex-end;margin-top:18px}
@media(max-width:650px){.forum-page-head{align-items:flex-start}.forum-head-actions{justify-content:flex-start}.forum-rules-summary{align-items:flex-start;flex-direction:column;gap:9px}.forum-rules-modal{padding:20px 18px}.forum-rules-list li{padding-left:46px}.forum-rules-dialog{width:calc(100vw - 20px)}}

/* V2.4.6 visitor counter */
.visitor-counter{margin:.55rem 0 0;color:#b9c9e3;font-size:.86rem}.visitor-counter strong{color:#ffe06b}.visitor-summary{margin-bottom:18px}

/* Gallery individual photo/video delete control -------------------------- */
.media-delete-form{
  position:absolute;
  top:8px;
  left:8px;
  z-index:10;
  margin:0;
}

.media-delete-form .btn{
  padding:6px 10px;
  min-height:0;
  border:1px solid rgba(255,255,255,.75);
  background:#b42318;
  color:#fff;
  border-radius:999px;
  font-size:.75rem;
  font-weight:800;
  line-height:1.2;
  box-shadow:0 2px 8px rgba(0,0,0,.35);
}

.media-delete-form .btn:hover,
.media-delete-form .btn:focus-visible{
  background:#8f1d14;
  color:#fff;
  outline:2px solid #fff;
}

/* Add media to an existing Gallery submission ---------------------------- */
.gallery-add-media{
  margin:12px 0;
}

.gallery-add-media > summary{
  display:inline-block;
  cursor:pointer;
  list-style:none;
}

.gallery-add-media > summary::-webkit-details-marker{
  display:none;
}

.gallery-add-media-form{
  margin-top:12px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#f7f9fc;
}

.gallery-add-media-form input[type=file]{
  background:#fff;
}

/* Video enlargement behaves like Gallery photos ------------------------- */
.video-lightbox-wrap{
  position:relative;
  width:100%;
  height:100%;
}

.video-lightbox-wrap video{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

/* Clickable picture area; bottom portion remains available for video controls */
.video-enlarge-zone{
  position:absolute;
  z-index:4;
  top:0;
  left:0;
  right:0;
  bottom:38px;
  border:0;
  padding:0;
  margin:0;
  background:transparent;
  cursor:zoom-in;
}

/* Same type of hover hint as still photos */
.video-enlarge-zone span{
  position:absolute;
  right:8px;
  bottom:8px;
  padding:4px 8px;
  border-radius:999px;
  background:rgba(4,18,49,.88);
  color:#fff;
  font-size:.75rem;
  font-weight:800;
  opacity:0;
  transition:opacity .15s ease;
  pointer-events:none;
}

.video-enlarge-zone:hover span,
.video-enlarge-zone:focus span{
  opacity:1;
}
