/* ACK St Thomas Aquinas — single font, matching Vision statement exactly.
   Source: #main-content .vision-feature h2 in featured-sections.css.
   Apple system / SF Pro Display, with Segoe UI and Arial fallbacks.
   Preserve existing font sizes, weights and text content. */
:root{
 --ack-font-site:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Arial,sans-serif;
 --ack-font-display:var(--ack-font-site);
 --ack-font-body:var(--ack-font-site);
 --ack-blue:#087CB8;
 --ack-blue-hover:#065A88;
 --ack-ink:#080B10;
 --ack-section-divider:linear-gradient(90deg,transparent 0%,rgba(8,124,184,.3) 15%,#087CB8 32%,#087CB8 68%,rgba(8,124,184,.3) 85%,transparent 100%);
}
/* High specificity defeats older !important Playfair, Poppins and fallback rules.
   Exclude icons so Font Awesome remains visible. */
html,body,
body *:not(i):not(svg):not(path):not([class*="fa-"]):not([class*="icon-"]),
#main-content *:not(i):not(svg):not(path):not([class*="fa-"]):not([class*="icon-"]),
.site-footer *:not(i):not(svg):not(path):not([class*="fa-"]):not([class*="icon-"]),
.navbar *:not(i):not(svg):not(path):not([class*="fa-"]):not([class*="icon-"]),
button,input,textarea,select,option{
 font-family:var(--ack-font-site)!important;
}
/* Spacing rhythm: improve readability without changing the distinctive hero
   or feature-section layouts. */
#main-content > section.section:not(.homepage-pastor):not(.homepage-leadership):not(.newsletter-section):not(.hero):not(.hero-section):not(.page-hero):not(.cta-section){
 padding-block:clamp(66px,7vw,105px)!important;
}
#main-content :is(.section-header,.unified-heading,.discover-heading){
 margin-bottom:clamp(28px,3.7vw,48px)!important;
}
/* Symmetrically centered 1px, predominantly logo-blue dividers between sibling sections.
   Uses a centered border image rather than ::before to preserve existing decorative
   pseudo-elements and to avoid overlap with photography or buttons. */
#main-content > section ~ section{
 border-top:1px solid transparent!important;
 border-image-source:var(--ack-section-divider)!important;
 border-image-slice:1!important;
 border-image-width:1 0 0 0!important;
 border-image-outset:0!important;
 border-image-repeat:stretch!important;
}
/* Avoid returning a footer divider: the footer remains visually separated
   only by its subtly darker blue background. */
.site-footer.footer{
 border:0!important;
 border-image:none!important;
 box-shadow:none!important;
}
.site-footer.footer::before,.site-footer.footer::after{
 content:none!important;display:none!important;
}
/* Unified button font and DARK BLUE (not black) hover treatment.
   Keep secondary buttons light with blue text for clear distinction. */
#main-content :is(
 .academy-button,.vision-feature-button,.join-invitation-primary,
 .join-invitation-secondary,.discover-primary,.newsletter-btn,
 .btn,.btn-primary,.btn-secondary,.btn-view-all,.btn-give,
 .btn-donate,.btn-submit,.share-btn,.cta-btn,.cta-btn-primary,
 .cta-btn-outline-white,.hero-cta .btn),
.site-footer .footer-main-cta,.navbar .nav-give-btn,
button,input[type="submit"],input[type="button"]{
 font-family:var(--ack-font-body)!important;
}
#main-content :is(
 .academy-button-primary,.vision-feature-button,.join-invitation-primary,
 .discover-primary,.newsletter-btn,.btn-primary,.btn-view-all,
 .btn-give,.btn-donate,.btn-submit,.share-btn,.cta-btn-primary,
 .hero-cta .btn-primary,.btn-give-footer):hover,
#main-content .cta-section .cta-buttons :is(.btn-primary,.btn-outline):hover,
#main-content .homepage-newsletter .newsletter-btn:hover,
#main-content .discover-events .discover-primary:hover,
#backToTop:hover,
.navbar .nav-menu--grouped .nav-give-btn:hover,
.site-footer .footer-contact-section > .footer-main-cta:hover{
 background:var(--ack-blue-hover)!important;
 background-color:var(--ack-blue-hover)!important;
 border-color:var(--ack-blue-hover)!important;
 color:#FFFFFF!important;
 -webkit-text-fill-color:#FFFFFF!important;
}
#main-content :is(
 .academy-button-primary,.vision-feature-button,.join-invitation-primary,
 .discover-primary,.newsletter-btn,.btn-primary,.btn-view-all,.btn-give,
 .btn-donate,.btn-submit,.share-btn,.cta-btn-primary):hover i,
#main-content .cta-section .cta-buttons :is(.btn-primary,.btn-outline):hover i,
#backToTop:hover i,
.site-footer .footer-contact-section > .footer-main-cta:hover i{
 color:#FFFFFF!important;
 -webkit-text-fill-color:#FFFFFF!important;
}
#main-content :is(.btn-outline,.academy-button-secondary,.join-invitation-secondary,.btn-secondary):hover{
 background:#e5f2f9!important;
 border-color:var(--ack-blue-hover)!important;
 color:var(--ack-blue-hover)!important;
 -webkit-text-fill-color:var(--ack-blue-hover)!important;
}
.site-footer .footer-social .social-link:hover{
 background:var(--ack-blue-hover)!important;
 border-color:var(--ack-blue-hover)!important;
}
@media(max-width:700px){
 #main-content > section.section:not(.hero):not(.hero-section):not(.page-hero){
  padding-block:clamp(52px,8vw,76px)!important;
 }
 #main-content :is(.section-header,.unified-heading,.discover-heading){
  margin-bottom:28px!important;
 }
}
@media(prefers-reduced-motion:reduce){
 #main-content button,.site-footer a{transition:none!important}
}

/* Sitewide responsive layout safeguards — keep all breakpoints consistent. */
/* Fluid global widths, no sideways scrolling from rigid images or grids. */
html{max-width:100%;overflow-x:clip}
body{max-width:100%;overflow-x:clip}
#main-content{max-width:100%;min-width:0}
#main-content section,#main-content article,#main-content .container,
#main-content .academy-content-wrap,.site-footer .footer-container{
 min-width:0;
}
#main-content img,.site-footer img{
 max-width:100%;
}
#main-content :is(iframe,video,embed,object){
 max-width:100%;
}
#main-content :is(h1,h2,h3,h4,h5,h6,p,li,blockquote),
.site-footer :is(h2,h3,p,li,a){
 overflow-wrap:break-word;
}
#main-content :is(.academy-hero-shell,.academy-about-grid,.vision-feature-layout,
 .join-invitation-layout,.service-experience-layout,.unified-heading,
 .unified-impact-grid,.unified-testimonials-grid,.unified-leadership-grid,
 .services-grid,.ministries-grid,.events-grid,.announcements-grid,
 .pastor-grid,.homepage-pastor-grid) > *{
 min-width:0;
}
#main-content :is(.academy-hero-shell,.academy-about-grid,.vision-feature-layout,
 .join-invitation-layout,.service-experience-layout,.unified-heading,
 .unified-impact-grid,.unified-testimonials-grid,.unified-leadership-grid,
 .services-grid,.ministries-grid,.events-grid,.announcements-grid){
 max-width:100%;
}
#main-content :is(.academy-hero,.academy-about,.vision-feature,.join-invitation,
 .homepage-leadership,.homepage-pastor) :is(img,video){
 max-width:100%;
}
/* Wide tablets: adapt multipanel layouts before content is squeezed. */
@media(max-width:1024px){
 #main-content :is(.vision-feature-layout,.join-invitation-layout,.service-experience-layout){
  column-gap:clamp(22px,3vw,40px)!important;
 }
 #main-content :is(.services-grid,.ministries-grid,.events-grid,.announcements-grid){
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
 }
 #main-content .unified-impact-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
 }
 #main-content .unified-testimonials-grid,
 #main-content .unified-leadership-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
 }
 .site-footer .footer-social{flex-wrap:wrap!important}
}
/* Small tablets / phones: layouts stack with consistent side gutters.
   Leave the menu's own open/close display behavior controlled by existing JS. */
@media(max-width:767px){
 #main-content :is(.container,.academy-content-wrap,.vision-feature .container,
 .join-invitation .container){
  width:min(100% - 36px,1180px)!important;
  max-width:100%!important;
  margin-inline:auto!important;
 }
 #main-content :is(.academy-hero-shell,.academy-about-grid,
 .vision-feature-layout,.join-invitation-layout,.service-experience-layout,
 .unified-heading,.services-grid,.ministries-grid,.events-grid,
 .announcements-grid,.unified-testimonials-grid,.unified-leadership-grid){
  grid-template-columns:minmax(0,1fr)!important;
 }
 #main-content .unified-impact-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
 }
 #main-content :is(.academy-hero h1,.vision-feature h2,.join-invitation h2,
 .section-title,.page-hero h1){
  max-width:100%!important;
  overflow-wrap:normal;
 }
 #main-content .academy-hero-actions{
  display:flex!important;flex-wrap:wrap!important;
  gap:12px!important;
 }
 #main-content .academy-hero-visual{width:100%!important;min-width:0!important}
 #main-content .vision-feature-art{min-width:0!important;width:100%!important}
 #main-content :is(.academy-hero-photo,.academy-about-photo){
  max-width:100%!important;
 }
 .site-footer .footer-essentials{
  width:min(100%,680px)!important;
  column-gap:24px!important;
 }
}
/* Narrow mobile: avoid tiny dual-column cards, cramped forms and clipped icons. */
@media(max-width:540px){
 #main-content :is(.container,.academy-content-wrap,.vision-feature .container,
 .join-invitation .container){
  width:min(100% - 32px,1180px)!important;
 }
 #main-content :is(.services-grid,.ministries-grid,.events-grid,
 .announcements-grid,.unified-impact-grid,.unified-testimonials-grid,
 .unified-leadership-grid){
  grid-template-columns:minmax(0,1fr)!important;
 }
 #main-content :is(.academy-hero h1,.vision-feature h2,.join-invitation h2,
 .page-hero h1){
  font-size:clamp(2rem,8.5vw,2.8rem)!important;
  line-height:1.16!important;
 }
 #main-content :is(input:not([type="checkbox"]):not([type="radio"]),
 textarea,select){
  max-width:100%;
 }
 #main-content :is(.academy-hero-actions,.cta-buttons,.hero-cta){
  max-width:100%;
 }
 .site-footer .footer-essentials{
  grid-template-columns:minmax(0,1fr)!important;
  width:min(100%,320px)!important;
  gap:34px!important;
  margin-inline:auto!important;
 }
 .site-footer .footer-social{gap:9px!important}
 .site-footer .footer-intro h2{
  max-width:100%;
  overflow-wrap:break-word;
 }
}
@media(max-width:360px){
 #main-content :is(.academy-hero h1,.vision-feature h2,.join-invitation h2){
  font-size:clamp(1.8rem,9vw,2.3rem)!important;
 }
 #main-content .academy-hero-actions .academy-button{
  max-width:100%!important;
 }
 .site-footer .footer-social .social-link{
  width:38px!important;height:38px!important;flex-basis:38px!important;
 }
}

/* Testimonials: prevent the legacy 2px pseudo-element from stacking with
   the centered 1px sitewide section divider. */
#main-content .homepage-testimonials::before{
 content:none!important;
 display:none!important;
 height:0!important;
}
#main-content > section.homepage-testimonials{
 border-top:1px solid transparent!important;
 border-image-source:var(--ack-section-divider)!important;
 border-image-slice:1!important;
 border-image-width:1 0 0 0!important;
}
