/* Small progressive enhancements; do not rebuild the shared theme/icon bundle. */
img.liturgy-colour-icon { height: auto; }
/* Offcanvas uses visibility:hidden, which otherwise still downloads its texture.
   Restore the existing theme automatically as soon as Bootstrap opens it. */
.page-index #main-menu:not(.show):not(.collapsing),
.page-index #mobile-main-menu:not(.show):not(.showing) .site-main-menu,
#main-menu:not(.show):not(.collapsing),
#mobile-main-menu:not(.show):not(.showing) .site-main-menu {
  background-image: none !important;
}
/* Identical crop/box, but the article's lead image is discoverable in HTML. */
.page-index .post-page-cover > .post-lead-image {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: center; border-radius: inherit;
}
/* The native rating inputs remain keyboard-operable; expose focus on the star. */
#id_score label:has(input:focus-visible) {
  outline: 2px solid #ffc107;
  outline-offset: 3px;
}
.home-page .owl-carousel:not(.owl-loaded) {
  display: block;
}
.home-page .owl-carousel:not(.owl-loaded) > .slide {
  display: none;
}
.home-page .owl-carousel:not(.owl-loaded) > .slide:first-child {
  display: block;
}

/* Stable, usable HTML fallback while below-fold sliders are not initialized. */
.home-course-banner { height: auto; }
/* Same pixels/cover positioning, but discoverable in HTML instead of waiting
   for CSS. High priority only when no lead article/course image competes. */
.page-index #section-2 { position: relative; isolation: isolate; background-image: none; }
.page-index #section-2 > .section-links-background {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: 0% 0%; z-index: -1; pointer-events: none;
}
[data-home-widget] .courses-swiper,
[data-home-widget] .authors-swiper { overflow: hidden; }
[data-home-widget] .courses-swiper:not(.swiper-initialized),
[data-home-widget] .authors-swiper:not(.swiper-initialized) { overflow-x: auto; }
[data-home-widget] .swiper-wrapper { display: flex; }
[data-home-widget] .courses-swiper:not(.swiper-initialized) .swiper-slide {
  flex: 0 0 calc((100% - 30px) / 1.3);
  margin-right: 30px;
}
[data-home-widget] .authors-swiper:not(.swiper-initialized) .swiper-slide {
  flex: 0 0 calc((100% - 30px) / 2);
  margin-right: 30px;
}
[data-home-widget] .swiper-slide { flex-shrink: 0; }
[data-home-widget] .swiper-slide img { max-width: 100%; }
@media (min-width: 576px) {
  [data-home-widget] .courses-swiper:not(.swiper-initialized) .swiper-slide { flex-basis: calc((100% - 30px) / 2); }
  [data-home-widget] .authors-swiper:not(.swiper-initialized) .swiper-slide { flex-basis: calc((100% - 45px) / 2.5); }
}
@media (min-width: 768px) {
  [data-home-widget] .authors-swiper:not(.swiper-initialized) .swiper-slide { flex-basis: calc((100% - 60px) / 3); }
}
@media (min-width: 992px) {
  [data-home-widget] .courses-swiper:not(.swiper-initialized) .swiper-slide { flex-basis: calc((100% - 60px) / 2.8); }
  [data-home-widget] .authors-swiper:not(.swiper-initialized) .swiper-slide { flex-basis: calc((100% - 90px) / 4); }
}
@media (min-width: 1200px) {
  [data-home-widget] .courses-swiper:not(.swiper-initialized) .swiper-slide { flex-basis: calc((100% - 60px) / 3); }
  [data-home-widget] .authors-swiper:not(.swiper-initialized) .swiper-slide { flex-basis: calc((100% - 120px) / 5); }
}

/* Keep the intrinsic proportions at every logo size and in hidden menus. */
.page-index .owl-carousel .owl-item img.author-avatar,
.page-index img.author-avatar {
  width: 24px;
  height: 24px;
  min-width: 24px;
  max-width: 24px;
  flex: 0 0 24px;
  object-fit: cover;
}

img.logo-normal,
img.logo-white {
  height: auto;
  object-fit: contain;
}

/* Make compact footer links individually reachable without changing colours. */
footer .d-md-block div > a:not(.title) {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
}

/* White category labels need AA contrast on the turquoise badge, too. */
.badge.bg-info {
  background-color: #137575 !important;
  color: #fff !important;
}

/* Verified against the actual light-background contrast failures. */
.btn-success, .btn-success:active, .btn-success.active,
.badge.bottom-unlocked, .badge.bg-success {
  --bs-btn-bg: #157347;
  --bs-btn-border-color: #157347;
  --bs-btn-active-bg: #105c38;
  --bs-btn-active-border-color: #105c38;
  background-color: #157347 !important;
  border-color: #157347 !important;
  color: #fff !important;
}
.btn-success:hover, .btn-success:focus-visible {
  background-color: #105c38 !important;
  border-color: #105c38 !important;
}
.btn:focus-visible, a:focus-visible, button:focus-visible {
  outline: 2px solid #111;
  outline-offset: 3px;
  box-shadow: 0 0 0 3px #fff;
}
#daily-liturgy-of-the-day .title,
#daily-liturgy-of-the-day .text-primary,
#daily-liturgy-of-the-day .btn-calendar {
  color: #995b00 !important;
}
#cookieConsentContainer .cookie-consent-btn {
  background-color: #006a91 !important;
  color: #fff !important;
}
#cookieConsentContainer .cookie-consent-btn:hover,
#cookieConsentContainer .cookie-consent-btn:focus-visible {
  background-color: #005676 !important;
}
.mobile-post-header-liturgy .nav-symbol {
  display: inline-block;
  width: 36px;
  height: 36px;
  min-width: 36px;
  flex-shrink: 0;
  color: #5a5c64;
  vertical-align: middle;
}
.theme-blue .mobile-post-header-liturgy .nav-symbol { color: #995b00; }

/* Gold filled buttons require a darker surface with their white text. */
.btn-primary, .btn-primary:active, .btn-primary.active {
  --bs-btn-bg: #995b00;
  --bs-btn-border-color: #995b00;
  --bs-btn-active-bg: #794800;
  --bs-btn-active-border-color: #794800;
  background-color: #995b00 !important;
  border-color: #995b00 !important;
  color: #fff !important;
}
.btn-primary:hover, .btn-primary:focus-visible {
  background-color: #794800 !important;
  border-color: #794800 !important;
}
.site-directory, .site-directory nav { background: #fff !important; color: #212529; }
.site-directory a { color: #825000; text-decoration: underline; }
/* Reserve comment space without loading a third-party application off screen. */
.portal-comments-widget { min-height:150px; }
.portal-comments-placeholder { min-height:48px; }
.portal-comments-placeholder[hidden] { display:none; }
.portal-year-navigation { display:flex; flex-wrap:wrap; gap:.25rem; }
.portal-year-navigation > a { flex:0 0 auto; min-width:4rem; }
.ratio > .portal-player-start {
  position:absolute; inset:auto 12px 12px auto; width:auto; height:auto;
  max-width:calc(100% - 24px); padding:.65rem 1rem; border:2px solid #fff;
  border-radius:.4rem; background:#164835; color:#fff; font:700 1rem/1.3 sans-serif;
}
.portal-player-start:focus-visible { outline:3px solid #ffbf47; outline-offset:3px; }
.portal-player-start[hidden] { display:none; }
/* The dark theme's gold text fails on a light information banner. */
.page-videos .alert-info a:not(.btn) { color:#075063; text-decoration:underline; }
.page-videos .alert-info a:not(.btn):hover,
.page-videos .alert-info a:not(.btn):focus { color:#033542; }
/* Readable horizontal links remain usable before Swiper or if its CDN fails. */
[data-home-widget="lessons"] .swiper:not(.swiper-initialized),
[data-home-widget="modules"] .swiper:not(.swiper-initialized) { overflow:auto; display:block; opacity:1; }
[data-home-widget="lessons"] .swiper:not(.swiper-initialized) .swiper-wrapper,
[data-home-widget="modules"] .swiper:not(.swiper-initialized) .swiper-wrapper { display:flex; gap:30px; }
[data-home-widget="lessons"] .swiper:not(.swiper-initialized) .swiper-slide,
[data-home-widget="modules"] .swiper:not(.swiper-initialized) .swiper-slide { opacity:1; visibility:visible; }
[data-home-widget="lessons"] .swiper:not(.swiper-initialized) .swiper-slide { flex:0 0 calc((100% - 6px)/1.2); }
[data-home-widget="modules"] .swiper:not(.swiper-initialized) .swiper-slide { flex:0 0 calc((100% - 24px)/1.8); }
@media(min-width:576px) {
  [data-home-widget="lessons"] .swiper:not(.swiper-initialized) .swiper-slide { flex-basis:calc((100% - 24px)/1.8); }
  [data-home-widget="modules"] .swiper:not(.swiper-initialized) .swiper-slide { flex-basis:calc((100% - 48px)/2.6); }
}
@media(min-width:768px) {
  [data-home-widget="lessons"] .swiper:not(.swiper-initialized) .swiper-slide { flex-basis:calc((100% - 36px)/2.2); }
  [data-home-widget="modules"] .swiper:not(.swiper-initialized) .swiper-slide { flex-basis:calc((100% - 72px)/3.4); }
}
@media(min-width:992px) {
  [data-home-widget="lessons"] .swiper:not(.swiper-initialized) .swiper-slide { flex-basis:calc((100% - 60px)/3); }
  [data-home-widget="modules"] .swiper:not(.swiper-initialized) .swiper-slide { flex-basis:calc((100% - 96px)/4.2); }
}
