@layer base {
  html, body { margin: 0; padding: 0; }
  body { overscroll-behavior: none; font-family: "Ubuntu", sans-serif; }
  main > :first-child { margin-top: 0 !important; }
  main > :last-child { margin-bottom: 0 !important; }
}
::-webkit-scrollbar { display: none; }
.hero-slide { transition: opacity 0.7s ease-in-out, transform 0.7s ease-out; }

:root {
  --ojcsv-ink: #191c1e;
  --ojcsv-muted: #64748b;
  --ojcsv-blue: #1e40af;
  --ojcsv-gold: #f59e0b;
  --ojcsv-linen: #fdfbf7;
  --ojcsv-surface: #f7f9fb;
  --ojcsv-low: #f2f4f6;
  --ojcsv-high: #e6e8ea;
  --ojcsv-line: #c6c6cd;
}
html { scroll-behavior: smooth; }
body, button, input, select, textarea { font-family: "Ubuntu", sans-serif; }
body { color: var(--ojcsv-ink); background: var(--ojcsv-surface); }
.bg-surface-linen { background-color: var(--ojcsv-linen) !important; }
.bg-surface { background-color: var(--ojcsv-surface) !important; }
.bg-surface-container-low { background-color: var(--ojcsv-low) !important; }
.bg-surface-container-high { background-color: var(--ojcsv-high) !important; }
.bg-surface-container-lowest { background-color: #fff !important; }
.bg-primary, .bg-primary-container { background-color: var(--ojcsv-ink) !important; }
.text-on-surface, .text-primary { color: var(--ojcsv-ink) !important; }
.text-on-surface-variant, .text-text-slate-muted { color: var(--ojcsv-muted) !important; }
.text-secondary, .text-amber-gold-light { color: var(--ojcsv-gold) !important; }
.text-on-primary, .text-white { color: #fff !important; }
.text-label-sm { font-size: .75rem; line-height: 1rem; }
.text-label-md { font-size: .875rem; line-height: 1.25rem; }
.text-body-sm { font-size: .875rem; line-height: 1.25rem; }
.text-body-md { font-size: 1rem; line-height: 1.5rem; }
.text-body-lg { font-size: 1.125rem; line-height: 1.75rem; }
.text-headline-sm { font-size: 1.5rem; line-height: 2rem; }
.text-headline-md { font-size: 2rem; line-height: 2.5rem; }
.text-headline-lg { font-size: 2.5rem; line-height: 3rem; }
.text-display-hero { font-size: clamp(2.5rem, 6vw, 3.5rem); line-height: 1.15; }
.text-text-slate-muted { color: var(--ojcsv-muted) !important; }
.border-outline-variant\/20 { border-color: rgba(198,198,205,.2) !important; }
.border-surface-container { border-color: var(--ojcsv-high) !important; }
.grid { display: grid; }
.grid-cols-1 { grid-template-columns: repeat(1,minmax(0,1fr)); }
.grid-cols-2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.max-w-7xl { max-width: 80rem; }
.text-\[18px\] { font-size: 18px; }
.text-\[20px\] { font-size: 20px; }
.text-\[16px\] { font-size: 16px; }
.hero-landing { min-height: 640px; }
@media (min-width: 992px) { .hero-landing { min-height: 720px; } }

/* Keep the landing page hero in two balanced columns on desktop. */
.hero-landing { min-height: 640px; }
.hero-landing .carousel { padding: 3rem 0 5rem; }
.hero-landing .max-w-7xl { width: min(100% - 3rem, 80rem); margin-inline: auto; }
.hero-landing .max-w-md { width: 100%; max-width: 28rem; }
.hero-landing .aspect-\[4\/5\] { aspect-ratio: 4 / 5; }
.hero-landing img { display: block; width: 100%; height: 100%; object-fit: cover; }
.hero-landing h1 { max-width: 15ch; margin-top: 0; font-size: clamp(2.25rem, 3.3vw, 3.5rem); line-height: 1.12; overflow-wrap: anywhere; }
.hero-landing p { line-height: 1.6; }
.hero-landing .carousel-indicators { margin-bottom: -2.5rem; }
@media (min-width: 576px) {
  .hero-landing .sm\:w-auto { width: auto !important; }
}
@media (min-width: 992px) {
  .hero-landing { min-height: 720px; }
  .hero-landing .carousel { padding: 3rem 0 4rem; }
  .hero-landing .lg\:grid-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .hero-landing .lg\:col-span-7 { grid-column: span 7 / span 7; }
  .hero-landing .lg\:col-span-5 { grid-column: span 5 / span 5; }
}
header.position-fixed { top: 0; left: 0; right: 0; z-index: 1030; }

/* Bootstrap layout support for existing responsive grid sections. */
.site-logo { display: block; width: 40px !important; height: 40px !important; max-width: 40px; object-fit: contain; flex: 0 0 40px; }
header.position-fixed { min-height: 5rem; width: 100%; background: rgba(253,251,247,.97); }
header.position-fixed > .max-w-7xl { width: min(calc(100% - 2rem), 80rem); max-width: 80rem; height: 5rem; margin-inline: auto; }
.site-nav-toggle { display: none; width: 2.75rem; height: 2.75rem; padding: .65rem; border: 1px solid #d8deea; border-radius: .75rem; background: #fff; color: var(--ojcsv-blue); }
.site-nav-toggle span { display: block; height: 2px; margin: 4px 0; border-radius: 2px; background: currentColor; transition: transform .2s ease, opacity .2s ease; }
.site-nav-toggle[aria-expanded="true"] span:first-child { transform: translateY(6px) rotate(45deg); }
.site-nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.site-nav-toggle[aria-expanded="true"] span:last-child { transform: translateY(-6px) rotate(-45deg); }
@media (min-width: 1200px) {
  .site-navigation { display: flex !important; }
}
@media (max-width: 1199.98px) {
  header.position-fixed > .max-w-7xl { position: relative; }
  .site-nav-toggle { display: inline-block; flex: 0 0 auto; }
  .site-navigation { position: absolute; top: calc(100% - 1px); left: 50%; z-index: 1040; display: none; width: 100vw; max-height: calc(100vh - 5rem); overflow-y: auto; flex-direction: column; align-items: stretch !important; gap: .25rem !important; padding: .75rem max(1rem, calc((100vw - 80rem) / 2)); transform: translateX(-50%); border-top: 1px solid #e7eaf0; background: rgba(253,251,247,.99); box-shadow: 0 14px 24px rgba(15,23,42,.14); }
  .site-navigation.show { display: flex !important; }
  .site-navigation a { padding: .8rem 1rem !important; border-radius: .65rem; }
.site-navigation a:hover, .site-navigation a:focus-visible { background: #eaf1ff; color: var(--ojcsv-blue) !important; }
}
@media (max-width: 575.98px) {
  header.position-fixed .site-navigation + .site-nav-toggle { margin-left: auto; }
}

/* Make the gallery's service highlights link read as a deliberate call to action. */
.service-highlights-link { align-self: flex-start; flex: 0 0 auto; min-height: 3rem; white-space: nowrap; border: 1px solid #1e40af; background: #1e40af; color: #fff !important; transition: background-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.service-highlights-link:hover, .service-highlights-link:focus-visible { background: #1b368f; color: #fff !important; box-shadow: 0 8px 20px rgba(30,64,175,.24) !important; transform: translateY(-1px); }
.service-highlights-link .material-symbols-outlined { font-size: 1.25rem; }
@media (min-width: 768px) { .service-highlights-link { align-self: auto; } }
@media (max-width: 575.98px) { .service-highlights-link { max-width: 100%; white-space: normal; } }
.w-8 { width: 2rem !important; } .h-8 { height: 2rem !important; }
.w-10 { width: 2.5rem !important; } .h-10 { height: 2.5rem !important; }
.w-2 { width: .5rem !important; } .h-2 { height: .5rem !important; }
.w-3 { width: .75rem !important; } .h-3 { height: .75rem !important; }
.w-2\.5 { width: .625rem !important; } .h-2\.5 { height: .625rem !important; }
.grid-cols-1 { grid-template-columns: repeat(1,minmax(0,1fr)); }
@media (min-width: 576px) {
  .sm\:grid-cols-2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .sm\:grid-cols-4 { grid-template-columns: repeat(4,minmax(0,1fr)); }
}
@media (min-width: 768px) {
  .md\:grid-cols-2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .md\:grid-cols-3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .md\:grid-cols-4 { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .md\:grid-cols-12 { grid-template-columns: repeat(12,minmax(0,1fr)); }
  .md\:col-span-1 { grid-column: span 1 / span 1; }
  .md\:col-span-4 { grid-column: span 4 / span 4; }
  .md\:col-span-5 { grid-column: span 5 / span 5; }
  .md\:col-span-7 { grid-column: span 7 / span 7; }
  .md\:col-span-8 { grid-column: span 8 / span 8; }
}
@media (min-width: 992px) {
  .lg\:grid-cols-2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .lg\:grid-cols-3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .lg\:grid-cols-4 { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .lg\:grid-cols-12 { grid-template-columns: repeat(12,minmax(0,1fr)); }
  .lg\:col-span-2 { grid-column: span 2 / span 2; }
  .lg\:col-span-3 { grid-column: span 3 / span 3; }
  .lg\:col-span-4 { grid-column: span 4 / span 4; }
  .lg\:col-span-5 { grid-column: span 5 / span 5; }
  .lg\:col-span-6 { grid-column: span 6 / span 6; }
  .lg\:col-span-7 { grid-column: span 7 / span 7; }
}
.pt-20 { padding-top: 5rem !important; }

/* Shared polish for the Bootstrap-based pages. */
a { color: inherit; text-decoration: none; }
a:hover { color: var(--ojcsv-blue); }
header nav a { padding: .55rem .8rem; border-radius: .65rem; transition: background-color .2s ease, color .2s ease; }
header nav a[aria-current="page"] { background: #e9ecef; color: var(--ojcsv-ink) !important; }
.rounded-xl { border-radius: 1rem !important; }
.rounded-2xl { border-radius: 1.35rem !important; }
.rounded-3xl { border-radius: 1.75rem !important; }
.max-w-sm { max-width: 24rem; }
.max-w-md { max-width: 28rem; }
.max-w-lg { max-width: 32rem; }
.max-w-2xl { max-width: 42rem; }
.max-w-7xl { width: min(calc(100% - 2rem), 80rem); margin-inline: auto; }
.space-y-space-xs > * + * { margin-top: .5rem; }
.space-y-space-sm > * + * { margin-top: 1rem; }
.space-y-space-md > * + * { margin-top: 1.5rem; }
.space-y-space-lg > * + * { margin-top: 2rem; }
.space-y-space-xl > * + * { margin-top: 2.5rem; }
.text-on-secondary, .text-on-secondary-container { color: #fff !important; }
.text-secondary-fixed, .text-secondary-fixed-dim { color: #ffe0bf !important; }
.text-surface-dim, .text-surface-container-high { color: #e6e8ea !important; }
.text-\[\#1d4ed8\] { color: #1d4ed8 !important; }
.bg-\[\#1d4ed8\] { background-color: #1d4ed8 !important; }
.bg-\[\#1d4ed8\]:hover { background-color: #1e40af !important; }
.bg-secondary { background-color: var(--ojcsv-gold) !important; }
.bg-secondary-fixed { background-color: #ffdcc3 !important; }
.bg-surface-container-lowest\/10 { background-color: rgba(255,255,255,.1) !important; }
.bg-surface-container-lowest\/20 { background-color: rgba(255,255,255,.2) !important; }
.border-glass-border { border-color: rgba(255,255,255,.35) !important; }
.hero-landing .carousel-control-prev, .hero-landing .carousel-control-next { width: 3.25rem; opacity: .8; }
.hero-landing .carousel-control-prev:hover, .hero-landing .carousel-control-next:hover { opacity: 1; }
.hero-landing .carousel-control-prev-icon, .hero-landing .carousel-control-next-icon { width: 2rem; height: 2rem; }
.hero-landing h1 span { color: #fbbf24; }
.hero-landing .carousel-item > .max-w-7xl { padding-top: 1rem; padding-bottom: 1rem; }
.hero-landing { background: radial-gradient(ellipse at 78% 45%, rgba(30,64,175,.24), transparent 38%), linear-gradient(120deg, #111827 0%, #172033 58%, #111827 100%) !important; }
.hero-landing .max-w-md { padding: .35rem; background: linear-gradient(145deg, rgba(245,158,11,.7), rgba(255,255,255,.08) 45%, rgba(30,64,175,.55)); }
.hero-landing .aspect-\[4\/5\] { border-radius: 1.1rem; }
.hero-landing .carousel-indicators [data-bs-target] { width: .65rem; height: .65rem; border: 0; border-radius: 50%; }
.page-about section { position: relative; }
.page-about section h1 { max-width: 14ch; font-size: clamp(2.5rem, 5vw, 4.5rem); line-height: 1.08; font-weight: 700; }
.page-about section h2 { font-size: clamp(1.85rem, 3.5vw, 3rem); line-height: 1.15; font-weight: 700; }
.page-about section .aspect-\[4\/5\] { aspect-ratio: 4 / 5; }
.page-about section .max-w-7xl { max-width: 80rem; }
.page-about .vision-mission-grid { align-items: start; }
.page-about .vision-mission-card { align-self: start; height: auto; }
.page-about .vision-card { gap: 1.25rem; }

/* Immersive hero treatment for the gallery and testimonies page. */
.gallery-hero-banner { min-height: 60vh; display: flex; align-items: center; padding-block: clamp(3rem, 6vh, 5rem) !important; background-color: #1d4ed8 !important; background-image: linear-gradient(100deg, rgba(20,57,145,.98) 0%, rgba(29,78,216,.93) 52%, rgba(29,78,216,.68) 100%), url("../assets/img/ojcs_2.webp") !important; background-size: cover; background-position: center 38%; color: #fff; }
.gallery-hero-banner > .max-w-7xl { width: min(calc(100% - 2rem), 80rem); }
.gallery-hero-banner nav, .gallery-hero-banner nav a, .gallery-hero-banner nav span { color: rgba(255,255,255,.86) !important; }
.gallery-hero-banner nav a:hover { color: #fff !important; }
.gallery-hero-banner > .max-w-7xl > .d-flex:first-child > span { background: rgba(255,255,255,.12) !important; border-color: rgba(255,255,255,.3) !important; color: #fff !important; backdrop-filter: blur(8px); }
.gallery-hero-banner > .max-w-7xl > .d-flex:first-child > span .material-symbols-outlined { color: #fbbf24 !important; }
.gallery-hero-banner h1 { max-width: 18ch; color: #fff !important; font-size: clamp(2.4rem, 5.2vw, 4.5rem); line-height: 1.06; text-wrap: balance; }
.gallery-hero-banner > .max-w-7xl > div:nth-child(2) p { max-width: 58rem; color: rgba(255,255,255,.84) !important; font-size: clamp(1rem, 1.35vw, 1.2rem); }
.gallery-hero-banner .grid > div { min-height: 8.5rem; }
@media (max-width: 767.98px) {
  .gallery-hero-banner { min-height: 60vh; background-position: 58% center; }
  .gallery-hero-banner > .max-w-7xl > .d-flex:first-child { align-items: flex-start !important; flex-direction: column; }
  .gallery-hero-banner h1 { max-width: 14ch; font-size: clamp(2.25rem, 9vw, 3.4rem); }
}

/* Clear hierarchy for the featured Walter Maresca testimony and its actions. */
.featured-testimony-copy { justify-content: flex-start !important; gap: 1.25rem; }
.featured-testimony-author { min-height: 5.25rem; background: #eef4ff; border: 1px solid #d9e5ff; }
.featured-testimony-author .w-10 { width: 3rem !important; height: 3rem !important; font-size: 1rem; letter-spacing: .02em; }
.featured-testimony-author .font-label-md { font-size: 1.05rem; line-height: 1.3; }
.featured-testimony-author .text-text-slate-muted { color: #536783 !important; }
.testimony-healing-badge { padding: .4rem .7rem; border-radius: 999px; background: #dce9ff; color: #1e40af !important; white-space: nowrap; }
.testimony-healing-badge .material-symbols-outlined { color: #1e40af !important; }
.testimony-watch-button { min-height: 2.9rem; border: 1px solid #1e40af; background: #1e40af; color: #fff !important; cursor: pointer; }
.testimony-watch-button:hover, .testimony-watch-button:focus-visible { border-color: #17378f; background: #17378f; color: #fff !important; box-shadow: 0 .55rem 1.25rem rgba(30,64,175,.25) !important; }
.testimony-watch-button .material-symbols-outlined { color: #fff !important; }
.testimony-share-button { min-height: 2.9rem; border: 1px solid #c7d5ec; background: #fff; color: #1e40af !important; }
.testimony-share-button:hover, .testimony-share-button:focus-visible { border-color: #1e40af; background: #edf4ff; color: #17378f !important; }
.testimony-photo-caption { display: flex; flex-direction: column; align-items: flex-start; gap: .25rem; padding: 1rem 1.1rem !important; border: 1px solid rgba(255,255,255,.24); background: rgba(12,29,64,.86); color: #fff; backdrop-filter: blur(10px); }
.testimony-photo-caption strong { font-size: 1.05rem; line-height: 1.3; }
.testimony-photo-caption > span:last-child { color: rgba(255,255,255,.78); font-size: .9rem; }
.testimony-photo-label { display: inline-flex; align-items: center; gap: .35rem; margin-bottom: .2rem; color: #bfdbfe; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.testimony-photo-label .material-symbols-outlined { font-size: 1rem; }
@media (max-width: 575.98px) {
  .featured-testimony-author { align-items: flex-start !important; flex-direction: column; gap: .8rem; }
  .testimony-healing-badge { margin-left: 3.75rem; }
  .testimony-watch-button, .testimony-share-button { width: 100%; justify-content: center; }
}

/* Give photo frames a real height so Bootstrap images crop consistently. */
.object-fit-cover { object-fit: cover !important; }
.object-fit-contain { object-fit: contain !important; }
.object-top { object-position: top center !important; }
.object-position-center { object-position: center center !important; }
.h-48 { height: 12rem !important; }
.h-44 { height: 11rem !important; }
.h-52 { height: 13rem !important; }
.h-64 { height: 16rem !important; }
.h-80 { height: 20rem !important; }
.h-96 { height: 24rem !important; }
.w-36 { width: 9rem !important; }
.h-36 { height: 9rem !important; }
@media (min-width: 576px) {
  .sm\:h-52 { height: 13rem !important; }
}
@media (min-width: 768px) {
  .md\:h-96 { height: 24rem !important; }
}

/* Filter controls and image cards on the testimony gallery page. */
.gallery-filter-list { overflow-x: auto; scrollbar-width: none; }
.gallery-filter-btn { flex: 0 0 auto; min-height: 2.75rem; padding: .58rem 1rem; border: 1px solid #d6dfed; border-radius: 999px; background: #fff; color: #42536b; font: 500 .95rem/1.25 "Ubuntu", sans-serif; box-shadow: 0 3px 10px rgba(18,32,56,.07); transition: background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease; }
.gallery-filter-btn:hover, .gallery-filter-btn:focus-visible { border-color: #1d4ed8; background: #edf4ff; color: #1e40af; outline: none; }
.gallery-filter-btn.is-active { border-color: #1e40af; background: #1e40af; color: #fff; box-shadow: 0 5px 14px rgba(30,64,175,.24); }
.gallery-filter-btn.is-active:hover, .gallery-filter-btn.is-active:focus-visible { background: #17378f; color: #fff; }
#sanctuary-gallery .gallery-item { min-width: 0; min-height: 100%; border: 1px solid #e2e8f0; background: #fff; box-shadow: 0 5px 16px rgba(21,35,58,.08); transition: transform .22s ease, box-shadow .22s ease; }
#sanctuary-gallery .gallery-item:hover { transform: translateY(-3px); box-shadow: 0 14px 28px rgba(21,35,58,.14) !important; }
#sanctuary-gallery .gallery-item > div:first-child { position: relative; flex: 0 0 15rem; height: 15rem; }
#sanctuary-gallery .gallery-item img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
#sanctuary-gallery .gallery-item:hover img { transform: scale(1.035); }
#sanctuary-gallery .gallery-item > div:first-child > .bg-gradient-to-t { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,20,38,.02) 45%, rgba(10,20,38,.3) 100%) !important; pointer-events: none; }
#sanctuary-gallery .gallery-item > div:first-child > span.position-absolute.top-3.left-3 { padding: .4rem .7rem !important; border: 1px solid rgba(255,255,255,.45); border-radius: 999px !important; background: rgba(20,48,103,.9) !important; color: #fff !important; font-size: .72rem; font-weight: 700; letter-spacing: .035em; }
#sanctuary-gallery .gallery-item > .p-3 { flex: 1 1 auto; min-height: 11rem; gap: .85rem; padding: 1.1rem !important; }
#sanctuary-gallery .gallery-item h3 { margin: 0 0 .45rem; color: #172033 !important; font-size: 1.12rem; font-weight: 700; line-height: 1.3; }
#sanctuary-gallery .gallery-item p { display: -webkit-box; min-height: 4.5em; margin: 0; overflow: hidden; color: #5b6b82 !important; font-size: .95rem; line-height: 1.5; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
#sanctuary-gallery .gallery-item .p-3 > div:last-child { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem .75rem; margin-top: auto; padding-top: .75rem; border-top: 1px solid #e9eef5; color: #607089 !important; }
#sanctuary-gallery .gallery-item .p-3 > div:last-child > span { min-width: 0; }
#sanctuary-gallery .gallery-item .p-3 > div:last-child > span:last-child { margin-left: auto; color: #1e40af !important; font-weight: 600; }
@media (max-width: 767.98px) {
  #sanctuary-gallery .gallery-item > div:first-child { flex-basis: 13rem; height: 13rem; }
  #sanctuary-gallery .gallery-item > .p-3 { min-height: 10rem; }
}
.testimony-cta-banner { background: linear-gradient(120deg, #10234b 0%, #1e40af 62%, #2855aa 100%); border-block: 1px solid rgba(147,197,253,.25); }
.testimony-cta-banner h2 { max-width: 22ch; margin-inline: auto; color: #fff !important; font-size: clamp(1.9rem, 4vw, 3rem); line-height: 1.12; }
.testimony-cta-banner p { color: rgba(255,255,255,.88) !important; }
.testimony-cta-banner > .max-w-6xl > div:first-child { border: 1px solid rgba(255,255,255,.25); background: rgba(8,24,58,.35); color: #fff; }
.testimony-cta-banner > .max-w-6xl > div:last-child a { min-height: 3rem; padding: .7rem 1.2rem !important; border-radius: .75rem !important; font-weight: 600; text-decoration: none; transition: transform .18s ease, background-color .18s ease, box-shadow .18s ease; }
.testimony-cta-banner > .max-w-6xl > div:last-child a:first-child { border: 1px solid #fff !important; background: #fff !important; color: #1e40af !important; box-shadow: 0 8px 20px rgba(3,13,35,.2) !important; }
.testimony-cta-banner > .max-w-6xl > div:last-child a:first-child .material-symbols-outlined { color: #1e40af !important; }
.testimony-cta-banner > .max-w-6xl > div:last-child a:last-child { border: 1px solid rgba(255,255,255,.58) !important; background: rgba(255,255,255,.1) !important; color: #fff !important; }
.testimony-cta-banner > .max-w-6xl > div:last-child a:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(3,13,35,.24) !important; }
@media (max-width: 575.98px) { .testimony-cta-banner > .max-w-6xl > div:last-child { align-items: stretch !important; flex-direction: column; } .testimony-cta-banner > .max-w-6xl > div:last-child a { justify-content: center; } }

/* Keep the testimony form readable and visually consistent with the gallery. */
#submission-testimony-form input:not([type="checkbox"]),
#submission-testimony-form select,
#submission-testimony-form textarea { display: block; width: 100%; min-height: 3rem; padding: .75rem 1rem !important; border: 1px solid #d4deed !important; border-radius: .75rem !important; background: #f8faff !important; color: #172033 !important; font: inherit; line-height: 1.5; transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease; }
#submission-testimony-form textarea { min-height: 9rem; resize: vertical; }
#submission-testimony-form input::placeholder,
#submission-testimony-form textarea::placeholder { color: #8290a5 !important; opacity: 1; }
#submission-testimony-form input:focus,
#submission-testimony-form select:focus,
#submission-testimony-form textarea:focus { outline: 0; border-color: #1e40af !important; background: #fff !important; box-shadow: 0 0 0 .2rem rgba(30,64,175,.14) !important; }
#submission-testimony-form input[type="checkbox"] { width: 1.1rem; height: 1.1rem; accent-color: #1e40af; flex: 0 0 auto; }
.testimony-submit-button { min-height: 3.1rem; margin-top: .25rem; padding: .75rem 1rem; border: 1px solid #1e40af; border-radius: .75rem; background: #1e40af; color: #fff; font: 600 1rem/1.3 "Ubuntu", sans-serif; cursor: pointer; box-shadow: 0 8px 18px rgba(30,64,175,.2); transition: transform .18s ease, background-color .18s ease, box-shadow .18s ease; }
.testimony-submit-button:hover { transform: translateY(-1px); background: #17378f; box-shadow: 0 11px 22px rgba(30,64,175,.27); }
.testimony-submit-button:focus-visible { outline: 3px solid rgba(30,64,175,.32); outline-offset: 3px; }
.testimony-submit-button .material-symbols-outlined { color: #fff !important; }

/* A calmer, more legible FAQ accordion. */
#faq-section { padding: clamp(3.5rem,7vw,6rem) 0 !important; background: #f4f7fb !important; }
#faq-section > .max-w-5xl { max-width: 58rem; }
#faq-section .faq-section-heading { margin-bottom: 2rem !important; }
#faq-section .faq-section-heading > span { color: #1e40af !important; letter-spacing: .14em; }
#faq-section .faq-section-heading h2 { margin: .55rem 0 .75rem; color: #172033 !important; font-size: clamp(2rem,4vw,2.8rem); line-height: 1.12; }
#faq-section .faq-section-heading p { max-width: 42rem; margin-inline: auto; color: #607089 !important; line-height: 1.65; }
#faq-accordion { display: grid; gap: .85rem; }
#faq-accordion .faq-item { padding: 0 !important; overflow: hidden; border: 1px solid #dce4ef !important; border-radius: 1rem !important; background: #fff !important; box-shadow: 0 4px 14px rgba(26,43,71,.055) !important; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
#faq-accordion .faq-item:hover { transform: translateY(-1px); border-color: #b9c9e3 !important; box-shadow: 0 9px 22px rgba(26,43,71,.09) !important; }
#faq-accordion .faq-item.is-open { border-color: #9cb6e7 !important; box-shadow: 0 10px 24px rgba(30,64,175,.1) !important; }
#faq-accordion .faq-toggle { min-height: 4.5rem; gap: 1rem; padding: 1rem 1.25rem !important; border: 0 !important; border-radius: 0 !important; background: #fff !important; color: #172033 !important; font: 600 clamp(1rem,2vw,1.15rem)/1.4 "Ubuntu", sans-serif !important; box-shadow: none !important; }
#faq-accordion .faq-toggle:hover { background: #f8faff !important; }
#faq-accordion .faq-toggle:focus-visible { position: relative; z-index: 1; outline: 3px solid rgba(30,64,175,.28) !important; outline-offset: -3px; }
#faq-accordion .faq-toggle > span:first-child { min-width: 0; gap: .85rem !important; }
#faq-accordion .faq-toggle > span:first-child > span:first-child { width: 2.35rem !important; height: 2.35rem !important; flex: 0 0 2.35rem; border: 1px solid #d8e4fb; background: #edf3ff !important; color: #1e40af !important; }
#faq-accordion .faq-icon { flex: 0 0 auto; color: #1e40af !important; transition: transform .2s ease; }
#faq-accordion .faq-content { margin: 0 !important; padding: 0 1.25rem 1.25rem 4.45rem !important; color: #5c6b80 !important; font-size: 1rem; line-height: 1.7; }
@media (max-width: 575.98px) { #faq-accordion .faq-toggle { min-height: 4rem; padding: .85rem .9rem !important; } #faq-accordion .faq-toggle > span:first-child { gap: .65rem !important; } #faq-accordion .faq-toggle > span:first-child > span:first-child { width: 2rem !important; height: 2rem !important; flex-basis: 2rem; } #faq-accordion .faq-content { padding: 0 .9rem 1rem 3.55rem !important; } }

/* Branch directory hierarchy and spacing. */
#branches-section { scroll-margin-top: 6rem; padding-top: 3.5rem !important; padding-bottom: 4rem !important; }
#branches-section .branch-directory-header { margin-bottom: 1.75rem !important; }
#branches-section .branch-directory-header > div > span { display: inline-flex; align-items: center; padding: .38rem .75rem; border-radius: 999px; background: #fff1d6; color: #8a5200 !important; font-size: .72rem; font-weight: 700; letter-spacing: .12em; }
#branches-section .branch-directory-header h2 { margin: .8rem 0 .45rem; color: #172033 !important; font-size: clamp(2rem, 3.5vw, 2.8rem); font-weight: 700; line-height: 1.12; }
#branches-section .branch-directory-header p { max-width: 48rem; margin: 0; color: #64748b !important; line-height: 1.6; }
#branches-section .branch-directory-header > .bg-surface-container-lowest { min-width: 21rem; border: 1px solid #e7e9ee !important; border-radius: 1rem !important; padding: .85rem 1rem !important; box-shadow: 0 8px 24px rgba(20,32,50,.08) !important; }
#branches-section .branch-directory-header > .bg-surface-container-lowest .w-12 { width: 3rem !important; height: 3rem !important; flex: 0 0 3rem; }
#branches-section .branch-directory-header > .bg-surface-container-lowest p:last-child { margin: .2rem 0 0; color: #9a5a00 !important; font-size: 1.2rem; }
#branches-section .branch-grid { gap: 1.25rem !important; }
#branches-section .branch-grid > div { min-height: 18rem; padding: 1.5rem !important; border: 1px solid #e5e7eb !important; border-radius: 1.25rem !important; box-shadow: 0 8px 24px rgba(20,32,50,.07) !important; transition: transform .2s ease, box-shadow .2s ease; }
#branches-section .branch-grid > div:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(20,32,50,.12) !important; }
#branches-section .branch-grid > .branch-featured { min-height: 20rem; border-color: rgba(217,119,6,.35) !important; background: linear-gradient(135deg,#fff 0%,#fffaf0 100%) !important; }
#branches-section .branch-grid h3 { color: #172033 !important; font-size: 1.45rem; line-height: 1.25; }
#branches-section .branch-grid p { color: #64748b !important; line-height: 1.6; }
#branches-section .branch-grid > div > div:last-child { margin-top: 1rem; }
@media (max-width: 991.98px) {
  #branches-section .branch-directory-header > .bg-surface-container-lowest { min-width: min(100%, 21rem); }
  #branches-section .branch-grid > .branch-featured { min-height: 18rem; }
}

/* Use the ministry logo blue throughout the locations directory. */
#branches-section { scroll-margin-top: 9rem; }
#branches-section .branch-directory-header > div > span { color: #1d4ed8 !important; background: #eaf1ff; }
#branches-section .branch-directory-header > .bg-surface-container-lowest .w-12 { background: #1d4ed8 !important; }
#branches-section .branch-directory-header > .bg-surface-container-lowest p:last-child { color: #1d4ed8 !important; }
#branches-section .branch-grid .text-secondary { color: #1d4ed8 !important; }
#branches-section .branch-grid .bg-secondary { background: #1d4ed8 !important; color: #fff !important; }
#branches-section .branch-grid > .branch-featured { border-color: rgba(29,78,216,.28) !important; background: linear-gradient(135deg,#fff 0%,#f3f7ff 100%) !important; }
#branches-section .branch-grid .material-symbols-outlined { color: #1d4ed8; }
#branches-section .branch-grid a { color: #1d4ed8 !important; }
#branches-section .branch-grid .bg-surface-container { background: #edf3ff !important; color: #334a75 !important; }

/* Restore contrast and sizing on the pastor welcome panel. */
#contact-section .pastor-welcome-card { display: grid; grid-template-columns: minmax(16rem, 4fr) minmax(0, 8fr); border: 1px solid #dbe3f2 !important; border-radius: 1.5rem !important; box-shadow: 0 18px 45px rgba(17,35,72,.12) !important; }
#contact-section .pastor-welcome-photo { min-height: 30rem; }
#contact-section .pastor-welcome-photo > img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
#contact-section .pastor-welcome-photo > .position-absolute.inset-0 { background: linear-gradient(180deg, transparent 48%, rgba(8,18,42,.85) 100%) !important; }
#contact-section .pastor-welcome-photo > .position-absolute.bottom-3 { z-index: 2; padding: 1.25rem; }
#contact-section .pastor-welcome-copy { min-width: 0; min-height: 30rem; padding: clamp(2rem,4vw,4.5rem) !important; border-radius: 0 !important; background: linear-gradient(135deg,#10234f 0%,#173f8d 58%,#1d4ed8 100%) !important; color: #fff !important; }
#contact-section .pastor-welcome-copy::before { content: ""; position: absolute; width: 22rem; height: 22rem; right: -8rem; top: -10rem; border-radius: 50%; background: rgba(255,255,255,.07); pointer-events: none; }
#contact-section .pastor-welcome-copy > * { position: relative; z-index: 1; }
#contact-section .pastor-welcome-copy h3 { max-width: 24ch; color: #fff !important; font-size: clamp(1.8rem,3vw,2.7rem); line-height: 1.14; }
#contact-section .pastor-welcome-copy p { color: rgba(255,255,255,.88) !important; line-height: 1.7; }
#contact-section .pastor-welcome-copy .text-\[\#fbbf24\] { color: #ffd166 !important; }
@media (max-width: 767.98px) {
  #contact-section .pastor-welcome-card { grid-template-columns: 1fr; }
  #contact-section .pastor-welcome-photo { min-height: 22rem; }
  #contact-section .pastor-welcome-copy { min-height: auto; padding: 2rem 1.4rem !important; }
}
#contact-section .pastor-welcome-card > .pastor-welcome-photo,
#contact-section .pastor-welcome-card > .pastor-welcome-copy { grid-column: auto !important; grid-row: 1; }
#contact-section .pastor-welcome-card > .pastor-welcome-copy { grid-column: 2 !important; }
@media (max-width: 767.98px) {
  #contact-section .pastor-welcome-card > .pastor-welcome-photo,
  #contact-section .pastor-welcome-card > .pastor-welcome-copy { grid-column: 1 !important; grid-row: auto; }
}

/* Responsive brand lockup and less intrusive hero-photo caption. */
header .brand-name { display: block; max-width: 15rem; font-size: clamp(1.1rem, 1.55vw, 1.5rem) !important; line-height: 1.12 !important; font-weight: 700; letter-spacing: -.025em; }
header .brand-name + span { font-size: clamp(.65rem, .9vw, .8rem); line-height: 1.2; }
@media (max-width: 767.98px) {
  header .brand-name { max-width: 11rem; font-size: 1.05rem !important; }
  header .brand-name + span { font-size: .68rem; }
  header .site-logo { width: 2.25rem !important; height: 2.25rem !important; flex-basis: 2.25rem; }
}
.hero-landing .hero-photo-frame > img { object-position: center 38% !important; }
.hero-landing .hero-photo-frame > .position-absolute.bottom-4 { left: .85rem; right: .85rem; bottom: .85rem; padding: .9rem 1rem !important; background: rgba(10,22,48,.82) !important; color: #fff !important; border: 1px solid rgba(255,255,255,.22); border-radius: 1rem !important; box-shadow: 0 8px 24px rgba(0,0,0,.22); backdrop-filter: blur(14px); }
.hero-landing .hero-photo-frame > .position-absolute.bottom-4 p { color: rgba(255,255,255,.86) !important; }
.hero-landing .hero-photo-frame > .position-absolute.bottom-4 .text-on-surface { color: #fff !important; }

/* Center the locations title, supporting copy, and service-hours badge. */
#branches-section .branch-directory-header { display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; gap: 1.25rem !important; text-align: center; }
#branches-section .branch-directory-header > div:first-child { display: flex; flex-direction: column; align-items: center; width: 100%; }
#branches-section .branch-directory-header h2 { margin-top: .75rem; }
#branches-section .branch-directory-header p { max-width: 52rem; margin-inline: auto; }
#branches-section .branch-directory-header > .bg-surface-container-lowest { align-self: center; }

/* Keep the pastoral welcome caption anchored over the dark foot of the photo. */
#contact-section .pastor-welcome-photo > .position-absolute.bottom-3 { left: 0 !important; right: 0 !important; bottom: 0 !important; padding: 4.5rem 1.5rem 1.4rem !important; background: linear-gradient(180deg,transparent 0%,rgba(8,18,42,.12) 25%,rgba(8,18,42,.9) 100%); }
#contact-section .pastor-welcome-photo > .position-absolute.bottom-3 p:first-child { margin: 0 0 .35rem; color: #fff !important; font-size: clamp(1.15rem,2vw,1.5rem); line-height: 1.2; letter-spacing: -.01em; }
#contact-section .pastor-welcome-photo > .position-absolute.bottom-3 p:last-child { margin: 0; color: #ffe19a !important; font-size: .9rem; line-height: 1.45; font-weight: 500; }

/* Keep the header and landing hero compact on phones. */
@media (max-width: 767.98px) {
  .max-w-7xl,
  header.position-fixed > .max-w-7xl {
    width: 100% !important;
    max-width: 100%;
    margin-inline: auto;
    padding-right: .75rem !important;
    padding-left: .75rem !important;
  }
  .hero-landing .max-w-7xl { width: 100% !important; }
  .hero-landing .carousel-item > .max-w-7xl { padding-right: .75rem !important; padding-left: .75rem !important; }

  header .brand-name,
  header .brand-name + span { display: none !important; }
  header .site-logo { width: 3rem !important; height: 3rem !important; max-width: 3rem; flex-basis: 3rem; }
  header .header-live-link { padding: .55rem .7rem !important; white-space: nowrap; font-size: .82rem; }

  .hero-landing { min-height: 0; }
  .hero-landing .carousel { padding: 1.75rem 0 3.25rem; }
  .hero-landing .max-w-7xl { width: min(100% - 1rem, 80rem); }
  .hero-landing .carousel-item > .max-w-7xl { padding: .5rem .75rem; }
  .hero-landing h1,
  .hero-landing h2 { max-width: 17ch; margin-bottom: .75rem !important; font-size: clamp(1.8rem, 7.2vw, 2.35rem); line-height: 1.08; }
  .hero-landing p { font-size: .95rem; line-height: 1.5; }
  .hero-landing .carousel-item .font-scripture-quote { font-size: .94rem; }
  .hero-landing .carousel-item .d-flex.flex-wrap.align-items-center.gap-3 a { padding: .7rem .85rem !important; font-size: .88rem; line-height: 1.25; }
  .hero-landing .carousel-indicators { margin-bottom: -2rem; }
}

/* Prayer request form styling. */
#contact-section { scroll-margin-top: 8rem; }
#contact-section .prayer-form-card { padding: clamp(1.4rem,3vw,2.5rem) !important; border: 1px solid #dce5f4 !important; border-radius: 1.35rem !important; background: linear-gradient(145deg,#fff 0%,#fbfdff 100%) !important; box-shadow: 0 18px 48px rgba(27,55,105,.1) !important; }
#contact-section .prayer-form-card > div:first-child { margin-bottom: 1.6rem !important; padding-bottom: 1.1rem; border-bottom: 1px solid #e8edf5; }
#contact-section .prayer-form-card h3 { margin: 0; color: #172b55 !important; font-size: clamp(1.45rem,2.3vw,1.9rem); line-height: 1.2; }
#contact-section .prayer-form-card > div:first-child p { margin: .55rem 0 0; color: #64748b !important; line-height: 1.55; }
#contact-section .prayer-form-card form label { display: block; margin-bottom: .5rem !important; color: #263752 !important; font-size: .9rem; font-weight: 600; }
#contact-section .prayer-form-card input,
#contact-section .prayer-form-card textarea { display: block; width: 100%; min-height: 3.35rem; padding: .9rem 1rem !important; border: 1px solid #d6deeb !important; border-radius: .75rem !important; background: #f8faff !important; color: #172033 !important; font: inherit; line-height: 1.5; box-shadow: inset 0 1px 2px rgba(20,35,60,.025); transition: border-color .18s ease, box-shadow .18s ease, background .18s ease; }
#contact-section .prayer-form-card textarea { min-height: 11rem; resize: vertical; }
#contact-section .prayer-form-card input::placeholder,
#contact-section .prayer-form-card textarea::placeholder { color: #8491a5 !important; opacity: 1; }
#contact-section .prayer-form-card input:focus,
#contact-section .prayer-form-card textarea:focus { outline: 0; border-color: #1d4ed8 !important; background: #fff !important; box-shadow: 0 0 0 .22rem rgba(29,78,216,.14) !important; }
#contact-section .prayer-form-card button[type="submit"] { min-height: 3.25rem; padding: .85rem 1.35rem !important; border: 0; border-radius: .75rem !important; background: #1d4ed8 !important; color: #fff !important; font-size: .95rem; font-weight: 700; box-shadow: 0 8px 18px rgba(29,78,216,.22) !important; transition: transform .18s ease, background .18s ease, box-shadow .18s ease; }
#contact-section .prayer-form-card button[type="submit"]:hover { transform: translateY(-1px); background: #173ea8 !important; box-shadow: 0 11px 22px rgba(29,78,216,.28) !important; }
#contact-section .prayer-form-card button[type="submit"] .material-symbols-outlined { margin-right: .35rem; }
#contact-section .space-y-space-md > * + * { margin-top: 1.2rem; }
#contact-section .w-12.h-12.rounded-3.bg-amber-gold-soft { background: #eaf1ff !important; color: #1d4ed8 !important; }

/* Dark ministry footer with a separate black legal bar. */
.site-footer { position: relative; background: #111827 !important; color: #f8fafc !important; border: 0 !important; }
.site-footer .text-on-surface, .site-footer h3, .site-footer .font-headline-sm { color: #fff !important; }
.site-footer .text-on-surface-variant, .site-footer .font-body-sm { color: #cbd5e1 !important; }
.site-footer .bg-surface-container-high { background: #1f2937 !important; }
.site-footer .footer-legal { position: relative; z-index: 0; padding: 1.15rem 0 !important; border-top: 1px solid #374151; color: #fff !important; }
.site-footer .footer-legal::before { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 50%; width: 100vw; transform: translateX(-50%); background: #000; }
.site-footer .footer-legal > * { position: relative; z-index: 1; color: #fff !important; }
.site-footer .footer-legal a { color: #fff !important; }
.site-footer .footer-legal a:hover { color: #bfdbfe !important; text-decoration: underline; }

/* Match the requested footer palette and remove the strip below the black bar. */
.site-footer { background: #333 !important; }
.site-footer .bg-surface-container-high { background: #444 !important; }
.site-footer > .max-w-7xl { padding-bottom: 0 !important; }
.site-footer .footer-legal { background: #000 !important; margin-bottom: 0 !important; }
.site-footer .footer-legal::before { background: #000 !important; }
