/* Site-specific additions. Safe to edit. */

/* Phone links look like normal text */
a[href^="tel:"] { color: inherit; text-decoration: none; }
a[href^="tel:"]:hover { text-decoration: underline; }

/* Hero location line */
.hero-location { letter-spacing: .04em; opacity: .95; }

/* Sticky "Schedule A Tour" / "Call" bar, phones and small tablets only */
.mobile-cta { display: none; }
@media (max-width: 767px) {
  .mobile-cta {
    display: flex; gap: 8px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1030;
    padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
    background: rgba(255,255,255,.96); box-shadow: 0 -2px 10px rgba(0,0,0,.15);
  }
  .mobile-cta .btn { flex: 1; margin: 0; padding: .7rem .5rem; text-align: center; }
  .mobile-cta .btn-call { background: #fff; border: 2px solid currentColor; }
  body { padding-bottom: 68px; }
}

/* ---- Photo gallery ---- */
.gallery-section { padding: 9.5rem 0 3rem; }
@media (max-width: 767px) { .gallery-section { padding-top: 7.5rem; } }
.gallery-grid { display: grid; gap: 14px; padding: 0 16px; max-width: 1300px; margin: 0 auto;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
.gallery-item { display: block; border: 0; padding: 0; background: #ddd; border-radius: 12px; overflow: hidden;
  aspect-ratio: 4 / 3; cursor: zoom-in; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.gallery-item:hover img, .gallery-item:focus-visible img { transform: scale(1.04); }
.gallery-empty { text-align: center; grid-column: 1 / -1; padding: 2rem; }
.lightbox { position: fixed; inset: 0; z-index: 2000; background: rgba(0,0,0,.92); display: none;
  align-items: center; justify-content: center; flex-direction: column; }
.lightbox.open { display: flex; }
.lightbox img { max-width: 92vw; max-height: 82vh; object-fit: contain; border-radius: 6px; }
.lightbox-caption { color: #fff; margin: 12px 20px 0; text-align: center; min-height: 1.4em; }
.lightbox button { position: absolute; background: rgba(255,255,255,.15); color: #fff; border: 0; cursor: pointer;
  width: 48px; height: 48px; border-radius: 50%; font-size: 26px; line-height: 1; }
.lightbox button:hover, .lightbox button:focus-visible { background: rgba(255,255,255,.35); }
.lightbox .lb-close { top: 16px; right: 16px; }
.lightbox .lb-prev { left: 12px; top: 50%; transform: translateY(-50%); }
.lightbox .lb-next { right: 12px; top: 50%; transform: translateY(-50%); }

/* ---- Navigation: keep the desktop menu on one line ---- */
@media (min-width: 992px) {
  .menu .navbar .navbar-nav { flex-wrap: nowrap !important; margin-left: auto !important; margin-right: auto !important; }
  .menu .navbar .navbar-nav .nav-link { white-space: nowrap !important; padding-left: 12px !important; padding-right: 12px !important; }
  .menu .navbar .navbar-buttons { flex-shrink: 0; }
  .menu .navbar .navbar-buttons .btn { white-space: nowrap !important; }
}
@media (min-width: 992px) and (max-width: 1279px) {
  .menu .navbar .navbar-nav .nav-link, .menu .navbar .navbar-caption { font-size: 15px !important; }
  .menu .navbar .navbar-nav .nav-link { padding-left: 8px !important; padding-right: 8px !important; }
  .menu .navbar .navbar-buttons .btn { font-size: 15px !important; padding-left: 1.1rem !important; padding-right: 1.1rem !important; }
}
@media (min-width: 992px) and (max-width: 1099px) {
  .menu .navbar .navbar-nav .nav-link, .menu .navbar .navbar-caption { font-size: 14px !important; }
  .menu .navbar .navbar-nav .nav-link { padding-left: 5px !important; padding-right: 5px !important; }
  .menu .navbar .navbar-buttons .btn { font-size: 14px !important; padding-left: .8rem !important; padding-right: .8rem !important; }
  .menu .navbar .navbar-logo img { height: 3.6rem !important; }
}

/* ---- Events ---- */
.events-section { padding: 3rem 0; }
.events-section .item-img img { width: 100%; height: 220px; object-fit: cover; border-radius: 12px; }
.events-section .item { margin-bottom: 2rem; }

/* ---- Home banner: never let the text slide under the fixed menu bar ---- */
.cid-upDtVLGCg7.site-fullscreen { padding-top: 8.5rem; padding-bottom: 3rem; }
@media (max-height: 760px) {
  .cid-upDtVLGCg7 .site-section-title { font-size: 2.6rem !important; line-height: 1.15 !important; margin-bottom: .5rem !important; }
  .cid-upDtVLGCg7 .content-wrap p { font-size: 1.1rem !important; line-height: 1.35 !important; margin-bottom: .6rem !important; }
  .cid-upDtVLGCg7 .content-wrap .site-section-btn { margin-top: .4rem; }
  .cid-upDtVLGCg7.site-fullscreen { padding-top: 7.5rem; padding-bottom: 1.5rem; }
}
@media (max-width: 767px) { .cid-upDtVLGCg7.site-fullscreen { padding-top: 7rem; } }

/* Home banner: the photo stands alone, with no text or shading on top of it */
.cid-upDtVLGCg7.site-fullscreen { min-height: 78vh; padding: 0; }
.cid-upDtVLGCg7 .site-overlay { display: none !important; }
@media (max-width: 767px) { .cid-upDtVLGCg7.site-fullscreen { min-height: 55vh; } }

/* Welcome intro: headline, call line and button sit in their own section under the photo */
.hero-intro { background: #fff; padding: 3rem 1rem 3.2rem; text-align: center; }
.hero-intro .intro-wrap { max-width: 820px; margin: 0 auto; }
.hero-intro h1 { color: #1f2d28; }
.hero-intro p { color: #1f2d28; }
.hero-intro p:empty { display: none; }
.hero-intro .site-section-btn { margin-top: .5rem; }

/* ---- Footer (address + phone on every page) ---- */
.site-footer { background: #2f4f45; color: #fff; padding: 2.2rem 0 2rem; text-align: center; }
.site-footer p { margin: 0 0 .35rem; color: #fff; }
.site-footer a { color: #fff; text-decoration: underline; }
.site-footer-name { font-size: 1.15rem; }
.site-footer, .site-footer p { font-family: "Source Serif 4", Georgia, serif; }

/* ---- Per-item text size (set from the admin's Size menu) ---- */
.fs-sm { zoom: .85; }
.fs-lg { zoom: 1.2; }
.fs-xl { zoom: 1.45; }

/* ---- Footer map (bottom right) ---- */
.site-footer .footer-info { text-align: center; }
.site-footer .footer-map iframe { width: 100%; height: 230px; border: 0; border-radius: 14px; display: block; }
@media (max-width: 767px) {
  .site-footer .footer-info { text-align: center; margin-bottom: 1.2rem; }
  .site-footer .footer-map iframe { height: 200px; }
}

/* ---- Image slideshows (an image with extra photos added in the admin) ---- */
.img-carousel { position: relative; display: block; width: 100%; overflow: hidden; }
.img-carousel .ic-slide { display: block; width: 100%; }
.img-carousel.ready .ic-slide { position: absolute; inset: 0; height: 100%; object-fit: cover; opacity: 0; transition: opacity .45s ease; }
.img-carousel.ready .ic-slide.is-active { opacity: 1; z-index: 1; }
.ic-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 44px; height: 44px; border: 0; border-radius: 50%;
  background: rgba(255,255,255,.88); color: #1f2d28; font-size: 28px; line-height: 1; cursor: pointer; box-shadow: 0 2px 8px rgba(0,0,0,.25); }
.ic-arrow:hover, .ic-arrow:focus-visible { background: #fff; }
.ic-prev { left: 10px; } .ic-next { right: 10px; }
.ic-dots { position: absolute; left: 0; right: 0; bottom: 10px; z-index: 3; display: flex; justify-content: center; gap: 8px; }
.ic-dots button { width: 11px; height: 11px; padding: 0; border: 2px solid #fff; border-radius: 50%; background: rgba(0,0,0,.35); cursor: pointer; }
.ic-dots button.on { background: #fff; }
