/* v2 enhancement layer: preserves the v1 design while improving its rhythm,
   touch targets, and responsiveness across viewport sizes. */
:root { --v2-fluid-space: clamp(1rem, 2.5vw, 2rem); }
html { scroll-behavior: smooth; }
body { overflow-x: clip; }
img, video, iframe { max-width: 100%; }

:where(a, button, input, select, textarea):focus-visible {
  outline: 3px solid rgba(0, 140, 105, .65);
  outline-offset: 3px;
}

.ftco-section { padding-block: clamp(3.5rem, 8vw, 7.5rem); }
.heading-section h2,
.hero-wrap .slider-text h1,
.swiper.home-slider .swiper-slide .slider-text h1 {
  font-size: clamp(2rem, 4.8vw, 4.25rem);
  line-height: 1.08;
  text-wrap: balance;
}
.hero-wrap .slider-text p { font-size: clamp(1rem, 1.5vw, 1.2rem); }

.btn, button, .navbar-toggler {
  min-height: 44px;
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease;
}
.btn:hover, button:hover { transform: translateY(-1px); }
.btn:active, button:active { transform: translateY(0); }

.event-wrap, .ministry, .sermon-wrap, .blog-entry {
  transition: transform .25s ease, box-shadow .25s ease;
}
@media (hover: hover) {
  .event-wrap:hover, .ministry:hover, .sermon-wrap:hover, .blog-entry:hover {
    transform: translateY(-4px);
    box-shadow: 0 .8rem 2rem rgba(14, 17, 20, .1);
  }
}

.form-control, .form-select, .crm-input, .crm-select, .crm-textarea {
  min-height: 44px;
}
.crm-menu-toggle { display: none; }

/* iPad/tablet: keep the public navigation and editorial cards balanced.
   Bootstrap switches from the collapsed navigation at 992px, so this range
   deliberately tightens the desktop treatment without changing its layout. */
@media (min-width: 768px) and (max-width: 1199.98px) {
  .container { max-width: min(100% - 3rem, 960px); }
  .ftco-section { padding-block: clamp(4.5rem, 7vw, 6rem); }
  .ftco-navbar-light .navbar-nav > .nav-item > .nav-link { padding-inline: clamp(.45rem, 1vw, .8rem); font-size: .78rem; letter-spacing: .05em; }
  .ftco-navbar-light .navbar-brand { font-size: 1rem; }
  .hero-wrap .slider-text .text { max-width: min(100%, 48rem); }
  .event-wrap .img { height: clamp(19rem, 38vw, 24rem); }
  .ministry .img { height: clamp(17rem, 33vw, 21rem); }
  .blog-entry .text { padding: clamp(1.25rem, 2.5vw, 2rem); }
  .crm-content { padding: clamp(1.25rem, 3vw, 2rem); }
}

@media (max-width: 991.98px) {
  .crm-sidebar { width: min(82vw, 20rem); }
  .crm-sidebar.open { box-shadow: 1rem 0 3rem rgba(0, 0, 0, .25); }
  .crm-menu-toggle { display: inline-flex; }
}

@media (max-width: 767.98px) {
  .ftco-navbar-light .navbar-nav { padding-block: .5rem; }
  .ftco-navbar-light .navbar-nav > .nav-item > .nav-link { padding-block: .75rem; }
  .hero-wrap .slider-text .text { padding-inline: var(--v2-fluid-space); }
  .container, .container-fluid { padding-inline: var(--v2-fluid-space); }
  .crm-card-header, .crm-card-body { padding: 1rem; }
  .crm-topbar { gap: .75rem; flex-wrap: wrap; }
  .crm-topbar-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
  .crm-toast { right: 1rem; bottom: 1rem; left: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
/* Donation stays unavailable until the church selects and configures a payment provider. */
[data-bs-target="#donateModal"],
#donateModal {
  display: none !important;
}
