/* Assisi Landing — tokens from sfaec.org Fonts & Colors + page stylesheet. */
:root {
  --assisi-navy: #19315B;
  --assisi-accent: #2B559E;
  --assisi-button: #1f2b3a;
  --assisi-heading-muted: #555555;
  --assisi-soft: #F4F6FA;
  --assisi-ink: #000000;
  --assisi-serif: "Droid Serif", Georgia, serif;
  --assisi-slab: "Roboto Slab", "Droid Serif", serif;
  --assisi-display: "Quattrocento", "Droid Serif", serif;
}

body.assisi-landing {
  background-color: #fff;
  color: var(--assisi-ink);
  font-family: var(--assisi-serif);
}

body.assisi-landing p {
  font-family: var(--assisi-serif);
  font-size: 16px;
  color: var(--assisi-ink);
}

body.assisi-landing h1,
body.assisi-landing .h1 {
  color: var(--assisi-navy);
  font-family: var(--assisi-serif);
  font-size: 36px;
}

body.assisi-landing h2,
body.assisi-landing .h2 {
  color: var(--assisi-navy);
  font-family: var(--assisi-serif);
  font-size: 28px;
}

body.assisi-landing h3,
body.assisi-landing .h3 {
  font-family: var(--assisi-serif);
  font-size: 22px;
}

body.assisi-landing h4,
body.assisi-landing .h4 {
  color: var(--assisi-heading-muted);
  font-family: var(--assisi-serif);
  font-size: 18px;
}

body.assisi-landing h5,
body.assisi-landing .h5,
body.assisi-landing h6,
body.assisi-landing .h6 {
  color: var(--assisi-heading-muted);
  font-family: var(--assisi-serif);
  font-size: 16px;
}

body.assisi-landing a {
  color: var(--assisi-accent);
}

body.assisi-landing a:hover,
body.assisi-landing a:focus {
  color: var(--assisi-navy);
}

/* Stock chrome is loaded on landing, Interior, and Digital Faith. Keep
   nav/footer navy with white type so menus are never dark-on-dark. */
body.assisi-landing #mainNavbar,
body.assisi-site #mainNavbar,
body.assisi-landing #mainNavbar.navbar,
body.assisi-site #mainNavbar.navbar,
body.assisi-landing #mainNavbar.bg-dark,
body.assisi-site #mainNavbar.bg-dark,
body.assisi-landing #mainNavbar.bg-light,
body.assisi-site #mainNavbar.bg-light,
body.assisi-landing #mainNavbar.bg-primary,
body.assisi-site #mainNavbar.bg-primary,
#mainNavbar,
#mainNavbar.navbar,
#mainNavbar.bg-dark,
#mainNavbar.bg-light,
#mainNavbar.bg-primary {
  background-color: var(--assisi-navy) !important;
  border-bottom: 0;
  font-family: var(--assisi-serif);
}

body.assisi-landing .bs5-nav-utility-bar,
body.assisi-site .bs5-nav-utility-bar {
  background-color: var(--assisi-navy) !important;
}

body.assisi-landing #mainNavbar a,
body.assisi-site #mainNavbar a,
body.assisi-landing #mainNavbar .nav-link,
body.assisi-site #mainNavbar .nav-link,
body.assisi-landing #mainNavbar .navbar-brand,
body.assisi-site #mainNavbar .navbar-brand,
body.assisi-landing #mainNavbar .navbar-text,
body.assisi-site #mainNavbar .navbar-text,
#mainNavbar a,
#mainNavbar .nav-link,
#mainNavbar .navbar-brand,
#mainNavbar .navbar-text {
  color: #fff !important;
  font-family: var(--assisi-serif);
}

body.assisi-landing #mainNavbar .nav-link:hover,
body.assisi-site #mainNavbar .nav-link:hover,
body.assisi-landing #mainNavbar .nav-link:focus,
body.assisi-site #mainNavbar .nav-link:focus,
body.assisi-landing #mainNavbar .nav-link.active,
body.assisi-site #mainNavbar .nav-link.active {
  color: #fff !important;
  opacity: 0.9;
}

body.assisi-landing #mainNavbar .dropdown-menu,
body.assisi-site #mainNavbar .dropdown-menu,
body.assisi-landing #mainNavbar .dropdown-menu-dark,
body.assisi-site #mainNavbar .dropdown-menu-dark,
#mainNavbar .dropdown-menu,
#mainNavbar .dropdown-menu-dark {
  --bs-dropdown-bg: var(--assisi-navy);
  --bs-dropdown-link-color: #fff;
  --bs-dropdown-link-hover-color: #fff;
  --bs-dropdown-link-hover-bg: var(--assisi-accent);
  --bs-dropdown-link-active-color: #fff;
  --bs-dropdown-link-active-bg: var(--assisi-accent);
  background-color: var(--assisi-navy) !important;
  border: 0;
}

body.assisi-landing #mainNavbar .dropdown-item,
body.assisi-site #mainNavbar .dropdown-item,
#mainNavbar .dropdown-item {
  color: #fff !important;
}

body.assisi-landing #mainNavbar .dropdown-item:hover,
body.assisi-site #mainNavbar .dropdown-item:hover,
body.assisi-landing #mainNavbar .dropdown-item:focus,
body.assisi-site #mainNavbar .dropdown-item:focus,
body.assisi-landing #mainNavbar .dropdown-item.active,
body.assisi-site #mainNavbar .dropdown-item.active,
#mainNavbar .dropdown-item:hover,
#mainNavbar .dropdown-item:focus,
#mainNavbar .dropdown-item.active {
  background-color: var(--assisi-accent) !important;
  color: #fff !important;
}

body.assisi-landing #mainNavbar .navbar-toggler,
body.assisi-site #mainNavbar .navbar-toggler,
#mainNavbar .navbar-toggler {
  border-color: rgba(255, 255, 255, 0.5);
}

body.assisi-landing #mainNavbar .navbar-toggler-icon,
body.assisi-site #mainNavbar .navbar-toggler-icon,
#mainNavbar .navbar-toggler-icon {
  filter: invert(1);
}

/* Digital Faith often renders without body.assisi-site, and the stock
   drawer is bs5-navbar-transparent. White nav links on that white
   panel are invisible — always paint the offcanvas navy. */
#siteNav,
#mainNavbar #siteNav,
#mainNavbar .offcanvas,
body.assisi-landing #siteNav,
body.assisi-site #siteNav {
  background-color: var(--assisi-navy) !important;
  color: #fff !important;
}

#siteNav .offcanvas-title,
#siteNav .offcanvas-header,
#siteNav .nav-link,
#siteNav a {
  color: #fff !important;
}

#siteNav .btn-close {
  filter: invert(1) grayscale(1);
}

body.assisi-landing .site-footer,
body.assisi-site .site-footer {
  background-color: var(--assisi-navy);
  color: #fff;
}

body.assisi-landing .site-footer a,
body.assisi-site .site-footer a {
  color: #fff;
}

/* Live page stylesheet: .btn.sfae */
body.assisi-landing a.btn {
  color: #fff !important;
  text-decoration: none;
}

body.assisi-landing .btn.sfae,
body.assisi-landing .btn-primary.sfae {
  --bs-btn-bg: var(--assisi-button);
  --bs-btn-border-color: var(--assisi-button);
  --bs-btn-hover-bg: var(--assisi-navy);
  --bs-btn-hover-border-color: var(--assisi-navy);
  --bs-btn-active-bg: var(--assisi-navy);
  --bs-btn-active-border-color: var(--assisi-navy);
  --bs-btn-color: #fff;
  --bs-btn-hover-color: #fff;
  background-color: var(--assisi-button);
  border: none;
  border-radius: 0;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  color: #fff;
  font-family: Georgia, "Droid Serif", serif;
  font-size: 20px;
  font-style: italic;
  padding: 15px 30px;
}

body.assisi-landing .btn.sfae.large {
  font-size: 3em;
  font-weight: 200;
  margin-bottom: 20px;
  padding: 20px;
}

body.assisi-landing .btn.sfae:hover,
body.assisi-landing .btn.sfae:focus {
  background-color: var(--assisi-navy);
  box-shadow: 5px 5px 5px black;
  color: #fff;
  text-decoration: underline;
}

@media (max-width: 767px) {
  body.assisi-landing .btn.sfae {
    margin-left: 0;
    margin-right: 0;
    width: 100%;
  }
}

/* Keep the current custom slideshow HTML (BS3 embed-responsive + iframe). */
.assisi-slideshow {
  background: #000;
  width: 100%;
}

.assisi-slideshow .embed-responsive {
  display: block;
  overflow: hidden;
  position: relative;
  width: 100%;
}

.assisi-slideshow .embed-responsive::before {
  content: "";
  display: block;
  padding-top: 56.25%;
}

.assisi-slideshow .embed-responsive iframe,
.assisi-slideshow .embed-responsive embed,
.assisi-slideshow .embed-responsive object,
.assisi-slideshow .embed-responsive video {
  border: 0;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}

.assisi-slideshow iframe {
  border: 0;
  display: block;
  max-width: 100%;
}

.assisi-eyebrow {
  color: var(--assisi-accent);
  display: inline-block;
  font-family: var(--assisi-serif);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.assisi-feature {
  background: var(--assisi-soft);
}

.assisi-feature-image {
  height: auto;
  width: 100%;
}

.assisi-accordion .accordion-item {
  border-color: rgba(25, 49, 91, 0.16);
}

.assisi-accordion .accordion-button {
  background-color: #fff;
  color: var(--assisi-navy);
  font-family: var(--assisi-serif);
  font-weight: 600;
}

.assisi-accordion .accordion-button:not(.collapsed) {
  background-color: var(--assisi-navy);
  box-shadow: none;
  color: #fff;
}

.assisi-accordion .accordion-button:focus {
  box-shadow: 0 0 0 0.2rem rgba(43, 85, 158, 0.25);
}

.assisi-accordion .accordion-button::after {
  filter: none;
}

.assisi-accordion .accordion-button:not(.collapsed)::after {
  filter: invert(1);
}

.assisi-schedule h4 {
  color: var(--assisi-navy);
}

.assisi-news {
  background: #fff;
}

.assisi-news h3,
.assisi-news .card-title,
.assisi-visit-card h2 {
  color: var(--assisi-navy);
}

/* Widget card-grids must not sit beside their headings or inside another
   card. Already-applied snapshot HTML wrapped the widgets in .card >
   .card-body; flatten that so the heading stacks above a full-width grid. */
.assisi-news .card-body {
  display: block;
}

.assisi-news > .container > .row > [class*="col-"] > .card.border-0 {
  background: transparent;
  box-shadow: none;
}

.assisi-news > .container > .row > [class*="col-"] > .card > .card-body {
  padding: 0;
}

.assisi-news .card-body > h2,
.assisi-news .card-body > h3,
.assisi-news-events > h3,
.assisi-news-articles > h3 {
  display: block;
  width: 100%;
  margin-bottom: 1rem;
}

.assisi-news .card-body > .row,
.assisi-news-events > .row,
.assisi-news-articles > .row {
  display: flex;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}

/* Bootstrap 5.3 hard-codes .row-cols-md-3 > * { width: 33.333% }.
   --bs-columns has no effect, so a single Parish news card would sit
   in one-third of the already-narrow col-lg-4. Force full width. */
.assisi-news .col-lg-4 .row > [class*="col"],
.assisi-news-articles .row > [class*="col"] {
  flex: 0 0 auto;
  width: 100%;
  max-width: 100%;
}

/* Missing news/event image: parish wordmark on footer navy. */
.assisi-card-placeholder {
  height: 180px;
  background-color: var(--assisi-navy);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.35rem 1.5rem;
}

.assisi-card-placeholder-lg {
  height: 200px;
  border-radius: 0.375rem;
}

.assisi-card-placeholder img {
  display: block;
  width: auto;
  height: auto;
  max-width: 78%;
  max-height: 118px;
  object-fit: contain;
}

.assisi-visit {
  background: var(--assisi-soft);
}

.assisi-visit-card {
  border-top: 4px solid var(--assisi-navy);
}

.assisi-landing-main {
  background: #fff;
}

.assisi-classic-feeds {
  background: #fff;
  padding: 2rem 0 3rem;
}

.assisi-classic-feeds #feedfour,
.assisi-classic-feeds #feedfive,
.assisi-classic-feeds #feedsix {
  margin-bottom: 2rem;
}

.assisi-classic-feeds #feedsix {
  margin-bottom: 0;
}

.assisi-staff-member h3 a {
  color: var(--assisi-navy);
  text-decoration: none;
}

.assisi-staff-member h3 a:hover,
.assisi-staff-member h3 a:focus {
  color: var(--assisi-accent);
  text-decoration: underline;
}

.assisi-staff-photo {
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: top center;
  width: 100%;
}

body.assisi-site .assisi-interior h1,
body.assisi-site .assisi-interior .h1,
body.assisi-landing .assisi-interior h1,
body.assisi-landing .assisi-interior .h1 {
  color: var(--assisi-navy);
  font-family: var(--assisi-serif);
}

body.assisi-site .assisi-interior h2,
body.assisi-site .assisi-interior .h2,
body.assisi-site .assisi-interior h3,
body.assisi-site .assisi-interior .h3,
body.assisi-landing .assisi-interior h2,
body.assisi-landing .assisi-interior .h3 {
  color: var(--assisi-navy);
  font-family: var(--assisi-serif);
}

.assisi-interior a {
  color: var(--assisi-accent);
}

.assisi-interior a:hover,
.assisi-interior a:focus {
  color: var(--assisi-navy);
}

.assisi-interior figcaption {
  color: var(--assisi-heading-muted);
  font-size: 0.95rem;
}

.assisi-history-cover {
  max-width: 174px;
  height: auto;
}

.assisi-partner-logo {
  max-height: 5.5rem;
  max-width: 100%;
  object-fit: contain;
}
