:root {
  --royal: #082b7a;
  --navy: #061632;
  --gold: #d6b35a;
  --gold-light: #f4e4b0;
  --green: #2fa978;
  --light: #f5f7fb;
  --ink: #172033;
  --white: #fff;
  --shadow: 0 18px 45px rgba(3, 19, 53, 0.16);
}
html { scroll-behavior: smooth; scroll-padding-top: 88px; }
body { min-height: 100vh; display: flex; flex-direction: column; font-family: Georgia, "Times New Roman", serif; color: var(--ink); background: #fff; overflow-x: hidden; }
main { flex: 1 0 auto; }
.topbar { background: var(--navy); color: #fff; font-size: .9rem; }
.topbar-contact { display: flex; align-items: center; flex-wrap: wrap; }
.service-message { display: inline-flex; align-items: center; flex-wrap: wrap; color: inherit; }
.social-links { display: inline-flex; gap: .7rem; }
.social-links a { width: 25px; height: 25px; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; display: inline-grid; place-items: center; color: #fff; text-decoration: none; font-size: .75rem; }
.social-links a:hover { background: var(--gold); color: var(--navy); }
.navbar { background: rgba(255,255,255,.98); box-shadow: 0 4px 24px rgba(0,0,0,.08); overflow: visible; }
.nav-shell { display: flex; align-items: center; flex-wrap: nowrap; }
.nav-logo { width: 48px; height: 48px; object-fit: contain; }
.navbar-brand { font-family: Georgia, serif; color: #173b78 !important; white-space: nowrap; }
.navbar-brand .brand-title { font-weight: 400; font-size: 1rem; }
.navbar-menu-wrap { margin-left: auto; overflow: visible; }
.navbar-nav { align-items: center; }
.nav-link { color: var(--navy) !important; font-weight: 400; white-space: nowrap; }
.nav-link:hover, .nav-link:focus { color: #a77b15 !important; }
.dropdown-menu { border: 0; min-width: 220px; box-shadow: var(--shadow); }
.dropdown-item i { color: #b58517; width: 1.25rem; text-align: center; }
.btn-ministry { background: linear-gradient(135deg,#c99824,#e2c468); color: #111; border: 0; font-weight: 700; padding: .7rem 1.15rem; box-shadow: 0 10px 25px rgba(214,188,48,.25); }
.btn-ministry:hover, .btn-ministry:focus { transform: translateY(-2px); background: #efcf65; color: #000; }
.gallery-hero { position: relative; min-height: 310px; display: flex; align-items: center; background: linear-gradient(110deg,rgba(3,18,52,.94),rgba(11,47,105,.82)), radial-gradient(circle at 78% 32%,rgba(47,169,120,.55),transparent 32%); overflow: hidden; }
.gallery-hero::before { content: ""; position: absolute; width: 360px; height: 360px; right: 7%; top: -160px; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; }
.gallery-hero::after { content: ""; position: absolute; inset: auto 0 0; height: 5px; background: linear-gradient(90deg,var(--gold),#fff3b0,var(--gold)); }
.gallery-hero .container { position: relative; z-index: 2; }
.gallery-hero h1 { font-weight: 700; }
.filter-btn { border-radius: 999px; padding: .65rem 1.25rem; font-weight: 700; }
.filter-btn.btn-primary, .filter-btn.active { background: var(--royal); border-color: var(--royal); }
.filter-btn.btn-outline-primary { color: var(--royal); border-color: var(--royal); }
.filter-btn.btn-outline-primary:hover { background: var(--royal); color: #fff; }
.gallery-card { height: 100%; cursor: pointer; overflow: hidden; border: 0; border-radius: 18px; box-shadow: 0 12px 35px rgba(7,31,74,.1); transition: .25s; }
.gallery-card:hover { transform: translateY(-7px); box-shadow: var(--shadow); }
.media-thumb { width: 100%; height: 230px; object-fit: cover; background: #111; }
.video-thumb { height: 230px; background: #111; display: flex; align-items: center; justify-content: center; color: #fff; position: relative; }
.video-thumb video { width: 100%; height: 100%; object-fit: cover; }
.play-overlay { position: absolute; color: var(--gold); font-size: 4rem; text-shadow: 0 3px 12px #000; }
.modal-media { max-width: 100%; max-height: 72vh; }
.admin-thumb, .admin-video { width: 110px; height: 85px; object-fit: cover; background: #111; border-radius: .5rem; }
.media-row { border: 1px solid #dee2e6; border-radius: .75rem; padding: 1rem; background: #fff; }
.card { border-radius: 18px; overflow: hidden; box-shadow: 0 12px 35px rgba(7,31,74,.09); }
.card-header.bg-primary { background: var(--royal) !important; }
.form-control, .form-select { border-radius: 10px; padding: .8rem 1rem; }
.form-control:focus, .form-select:focus { border-color: var(--green); box-shadow: 0 0 0 .25rem rgba(47,169,120,.15); }
.footer { flex-shrink: 0; background: #030d20; color: #cdd7ed; }
.footer a { color: #fff; text-decoration: none; }
.footer a:hover { color: var(--gold); }
.footer-logo { width: 82px; height: 82px; object-fit: contain; }
.footer-modal-link { cursor: pointer; }
.back-to-top { position: fixed; right: 18px; bottom: 18px; width: 46px; height: 46px; z-index: 1090; display: grid; place-items: center; border: 0; border-radius: 50%; color: var(--navy); background: var(--gold); box-shadow: 0 10px 25px rgba(0,0,0,.2); opacity: 0; visibility: hidden; transform: translateY(12px); transition: .2s ease; }
.back-to-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.modal-content { border-radius: 18px; border: 0; }
.ministry-modal-header { background: var(--gold); }
@media (min-width: 992px) {
  #mainNav .nav-shell { flex-wrap: nowrap; align-items: center; }
  #mainNav .navbar-menu-wrap { display: flex !important; align-items: center; flex-basis: auto; width: auto; }
  #mainNav .navbar-nav, #mainNav .nav-item, #mainNav .nav-link, #mainNav .giving-item { align-items: center; }
  #mainNav .nav-link, #mainNav .giving-item { display: flex; }
}
@media (max-width: 991.98px) {
  .nav-shell { flex-wrap: wrap; }
  .navbar-menu-wrap { width: 100%; margin-left: 0; }
  .navbar-nav { align-items: flex-start; padding-top: .75rem; }
  .giving-item { margin: .5rem 0 1rem; }
}
@media (max-width: 575.98px) {
  .topbar { display: none; }
  .navbar-brand .brand-title { font-size: .78rem; }
  .nav-logo { width: 42px; height: 42px; }
  .gallery-hero { min-height: 260px; }
  .media-thumb, .video-thumb { height: 200px; }
  .admin-thumb, .admin-video { width: 90px; height: 70px; }
}

/* Static media gallery additions */
.gallery-hero{background:linear-gradient(110deg,rgba(3,18,52,.94),rgba(11,47,105,.82)),radial-gradient(circle at 80% 20%,#17418b,#061632 68%);margin-top:0}
.media-preview{position:relative;aspect-ratio:16/10;background:#061632;overflow:hidden;border-radius:18px 18px 0 0}
.gallery-thumb{width:100%;height:100%;object-fit:cover;display:block}
.video-play{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:2rem;background:rgba(0,0,0,.18)}
.media-card{overflow:hidden;cursor:pointer;transition:transform .25s ease,box-shadow .25s ease}
.media-card:hover,.media-card:focus{transform:translateY(-6px);box-shadow:var(--shadow)!important;outline:0}
.admin-thumb{width:92px;height:72px;object-fit:cover;border-radius:.65rem;background:#061632}
.media-admin-item{box-shadow:0 5px 18px rgba(3,19,53,.07)}
.ministry-modal-header{background:#d4af37!important}
#mainNav .nav-logo{width:46px;height:46px}
@media(max-width:767.98px){.media-admin-item{align-items:flex-start!important;flex-wrap:wrap}.media-admin-item .btn-group{margin-left:auto}}

/* Media-library thumbnails and content-use restrictions */
.admin-video-thumb{position:relative;flex:0 0 auto}.admin-video-thumb>i{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:1.5rem;text-shadow:0 2px 10px #000;pointer-events:none}.protected-media{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.media-preview{cursor:zoom-in}@media print{body>*{display:none!important}body:after{content:"Printing is disabled for this media gallery.";display:block!important;padding:3rem;font:700 24px Georgia,serif;color:#061632}}

/* 2026-08 admin label, media-library and selection refinements */
html,
body,
body * {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}
input,
textarea,
select,
[contenteditable="true"] {
  -webkit-user-select: text;
  user-select: text;
}
.form-label i,
.form-check-label i {
  color: #b58517;
  width: 1.2rem;
  text-align: center;
}
.media-admin-item {
  width: 100%;
  min-width: 0;
  overflow: hidden;
}
.media-admin-item > .flex-grow-1 {
  min-width: 0;
  overflow: hidden;
}
.media-admin-item .media-filename {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.media-admin-item .btn-group {
  flex: 0 0 auto;
  white-space: nowrap;
}
@media (max-width: 767.98px) {
  .media-admin-item {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start !important;
  }
  .media-admin-item .btn-group {
    grid-column: 1 / -1;
    width: 100%;
    margin: .75rem 0 0 !important;
  }
  .media-admin-item .btn-group .btn {
    flex: 1 1 0;
  }
}

/* Media Library sort-order editing and multi-upload progress */
.media-library-status {
  padding: 1rem;
  border: 1px dashed rgba(8, 43, 122, .3);
  border-radius: .75rem;
  background: #f7f9fd;
  color: var(--navy);
  text-align: center;
}
.sort-order-editor {
  width: min(100%, 390px);
}
.sort-order-editor .input-group-text {
  color: var(--navy);
  background: #f7f9fd;
}
.sort-order-editor .input-group-text i {
  color: #b58517;
}
.media-action-buttons {
  align-self: center;
}
#uploadProgressWrap .progress {
  height: 1.15rem;
  border-radius: 999px;
}
#uploadProgress {
  background-color: var(--royal);
  font-family: Arial, sans-serif;
  font-weight: 700;
}
@media (max-width: 767.98px) {
  .sort-order-editor {
    width: 100%;
  }
  .media-action-buttons {
    grid-column: 1 / -1;
  }
}
@media (max-width: 480px) {
  .sort-order-editor {
    display: grid;
    grid-template-columns: 1fr 90px;
  }
  .sort-order-editor .input-group-text {
    grid-column: 1 / -1;
    border-radius: .375rem .375rem 0 0 !important;
  }
  .sort-order-editor .sort-order-input {
    border-radius: 0 0 0 .375rem !important;
  }
  .sort-order-editor .save-sort-btn {
    border-radius: 0 0 .375rem 0 !important;
  }
}


/* Go to top button */
.go-to-top-button {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 1050;
  width: 3rem;
  height: 3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 2px solid rgba(255, 255, 255, .8);
  border-radius: 50%;
  background: var(--navy, #082b7a);
  color: #fff;
  box-shadow: 0 .4rem 1rem rgba(0, 0, 0, .25);
  opacity: 0;
  visibility: hidden;
  transform: translateY(.75rem);
  transition: opacity .2s ease, visibility .2s ease, transform .2s ease, background-color .2s ease;
}
.go-to-top-button.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.go-to-top-button:hover,
.go-to-top-button:focus {
  background: var(--royal, #0d6efd);
  color: #fff;
}
.go-to-top-button:focus-visible {
  outline: 3px solid rgba(244, 228, 176, .9);
  outline-offset: 3px;
}
@media (max-width: 575.98px) {
  .go-to-top-button {
    right: .85rem;
    bottom: .85rem;
    width: 2.75rem;
    height: 2.75rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .go-to-top-button {
    transition: none;
  }
}
