/* ==========================================================================
   Strong Tower — component-level styling.
   Layout (containers, section backgrounds, section padding) is handled
   natively via WPBakery row settings (type=grid, background_color,
   padding_top/padding_bottom) — not here.
   ========================================================================== */

/* Theme default body text is 14px/weight 300 (thin) — legible-enough size but the
   thin weight reads as faint everywhere it's still used (nav, widgets, anything not
   covered by a .st-* class or .wpb_text_column p below). Bump weight only here, since
   changing the base font-size site-wide risks breaking spacing in chrome I haven't
   visually re-checked (mobile menu, sidebar widgets, etc). */
body{ font-weight:400; }

/* Newsletter signup ([st_newsletter] shortcode, used on Home/Contact/Events/Sermons)
   is temporarily hidden site-wide — it never had a real mailing-list service behind it,
   just a decorative form. The shortcode/component itself is untouched and still fully
   reusable; this is the single on/off switch. To bring it back, delete this rule (or
   comment it out) — no page content needs editing either way. */
.vc_row:has(.st-newsletter-inner){ display:none !important; }

/* Homepage hero (LayerSlider "Homepage Hero") */
.st-hero{ box-sizing:border-box; width:100%; height:100%; padding:0 8vw 7vh; display:flex; flex-direction:column; justify-content:flex-end; white-space:normal; font-size:16px;
  background:
    linear-gradient(0deg, rgba(23,23,26,.75) 0%, rgba(23,23,26,0) 40%),
    linear-gradient(90deg, rgba(23,23,26,.82) 0%, rgba(23,23,26,.55) 40%, rgba(23,23,26,.12) 75%, rgba(23,23,26,.05) 100%); }
.st-hero-btn, .st-hero-services{ font-family:'DM Sans', sans-serif; }
.st-hero-title, .st-hero-tagline, .st-hero-services{ text-shadow:0 2px 18px rgba(0,0,0,.35); }
.st-hero-main{ margin-bottom:auto; margin-top:auto; padding-top:8vh; max-width:640px; }
.st-hero-title{ margin:0 0 18px; font-family:'Fraunces', 'Playfair Display', serif; font-weight:600; font-variation-settings:'opsz' 144; font-size:clamp(48px, 7vw, 100px); line-height:.98; color:#fff !important; letter-spacing:-.02em; text-transform:none; }
.st-hero-title em{ font-style:italic; font-weight:500; color:var(--st-gold-light); }
.st-hero-tagline{ margin:0 0 32px; font-family:'DM Sans', sans-serif; font-weight:400; font-size:clamp(17px, 1.6vw, 21px); line-height:1.5; letter-spacing:.02em; color:rgba(255,255,255,.9); max-width:480px; }
.st-hero-actions{ display:flex; flex-wrap:wrap; gap:14px; }
.st-hero-btn{ display:inline-block; padding:15px 32px; border-radius:40px; font-size:15px; font-weight:600; letter-spacing:.5px; text-decoration:none; transition:background .2s ease, color .2s ease; }
.st-hero-btn-gold{ background:var(--st-gold); color:#fff !important; border:2px solid var(--st-gold); }
.st-hero-btn-gold:hover{ background:var(--st-gold-light); border-color:var(--st-gold-light); }
.st-hero-btn-outline{ background:transparent; color:#fff !important; border:2px solid #fff; }
.st-hero-btn-outline:hover{ background:#fff; color:var(--st-black) !important; }
.st-hero-services{ color:#fff; font-size:17px; line-height:1.6; }
.st-hero-services strong{ display:block; font-size:19px; margin-bottom:4px; }
.st-hero-services span{ display:block; margin-bottom:10px; }
.st-hero-services a{ color:var(--st-gold) !important; font-size:13px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; text-decoration:none; }
@media (max-width: 767px){
  .st-hero{ padding:0 24px 32px; background: linear-gradient(0deg, rgba(23,23,26,.88) 0%, rgba(23,23,26,.6) 55%, rgba(23,23,26,.35) 100%); }
  .st-hero-btn{ padding:13px 24px; font-size:14px; }
  .st-hero-services{ font-size:15px; }
}

:root{
  --st-purple-dark: #2c1430;
  --st-purple: #4a1d43;
  --st-gold: #c9962e;
  --st-gold-light: #d9ac52;
  --st-cream: #f8f6f3;
  --st-black: #17171a;
  --st-text: #2a2a2a;
}

.st-eyebrow{
  color: var(--st-gold);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin: 0 0 12px;
}
.st-heading{ font-size:32px; line-height:1.25; margin:0 0 18px; font-weight:700; }
/* !important: same WPBakery last-child reset as .st-section-intro above */
.st-lead{ font-size:17px; line-height:1.7; color:#3c3830; margin:0 0 28px !important; }
.st-center{ text-align:center; }
/* !important: WPBakery's own reset (.wpb_text_column :last-child{margin-bottom:0})
   zeroes this out everywhere it's the last element inside a vc_column_text, which is
   every section intro on the site — this was silently collapsing spacing site-wide. */
.st-section-intro{ text-align:center; max-width:640px; margin:0 auto 40px !important; }

.st-btn{
  display:inline-block;
  padding: 14px 28px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration:none;
  border-radius: 4px;
  transition: opacity .2s ease, transform .2s ease;
}
.st-btn:hover{ opacity:.88; transform: translateY(-1px); }
.st-btn-gold{ background: var(--st-gold); color:#fff; }
.st-btn-outline{ background:transparent; border:1px solid var(--st-text); color:var(--st-text); }
.st-inline-btn.vc_btn3-container{ display:inline-block; margin:0 12px 0 0; vertical-align:middle; }
.st-mt-btn{ margin-top:40px; }

/* Icon + label/value stat blocks (info bar, contact strip) */
.st-strip-icon{
  width:40px; height:40px; margin:0 auto 10px; border:1px solid var(--st-gold); border-radius:50%;
  display:flex; align-items:center; justify-content:center; color: var(--st-gold); font-size:17px;
}
.st-label{ font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--st-gold); margin-bottom:2px; }
.st-value{ font-size:14.5px; color: var(--st-text); }
.st-strip-row .st-value, .st-infobar-row .st-value{ color:#fff; }
/* Vertically center the "Plan Your Visit" column against the taller icon columns —
   the theme's own equal_height/content_placement row params are no-ops (verified: no
   flex class ever appears in the rendered HTML), so this is done directly. */
.st-infobar-row .section_inner_margin{ display:flex; flex-wrap:wrap; align-items:center; }
.st-infobar-row .wpb_column{ float:none; }

/* "I'm looking for" cards */
.st-card{
  background:#fff;
  border-radius: 6px;
  padding: 36px 26px;
  text-align:center;
  box-shadow: 0 4px 18px rgba(0,0,0,.05);
  height:100%;
  transition: transform .2s ease, box-shadow .2s ease;
}
.st-card:hover{ transform: translateY(-4px); box-shadow: 0 10px 24px rgba(0,0,0,.09); }
.st-card-icon{ font-size:34px; color: var(--st-gold); margin-bottom:18px; }
.st-card h4{ font-size:17px; margin:0 0 8px; font-weight:700; }
.st-card p{ font-size:16px; color:#544f47; margin:0 0 12px; }
.st-card a.st-arrow{ color: var(--st-gold); font-weight:700; text-decoration:none; }

/* Events */
.st-events-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-bottom:36px; }
@media (max-width: 782px){ .st-events-grid{ grid-template-columns:1fr; } }
.st-event-card{
  background:#fff;
  border-radius:6px;
  box-shadow: 0 4px 18px rgba(0,0,0,.05);
  padding:24px;
  display:flex;
  gap:18px;
  align-items:flex-start;
  height:100%;
}
.st-event-date{ text-align:center; flex-shrink:0; min-width:56px; }
.st-event-date .st-month{ color:var(--st-gold); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:1px; }
.st-event-date .st-day{ font-size:28px; font-weight:800; line-height:1.1; }
.st-event-card h4{ font-size:16px; margin:0 0 8px; font-weight:700; }
.st-event-meta{ font-size:12px; color:var(--st-gold); font-weight:700; margin-bottom:12px; text-transform:uppercase; letter-spacing:.5px; }
.st-event-card p{ font-size:16px; color:var(--st-text); line-height:1.6; margin:0 0 18px; }
.st-event-card a.st-arrow{ color: var(--st-gold); font-weight:700; font-size:12.5px; text-decoration:none; text-transform:uppercase; letter-spacing:.5px; }

/* Sermon (dark section) */
.st-video-thumb{ position:relative; border-radius:6px; overflow:hidden; }
.st-play-btn{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:64px; height:64px; border-radius:50%; background: var(--st-gold);
  display:flex; align-items:center; justify-content:center; color:#fff; font-size:22px;
  box-shadow: 0 0 0 8px rgba(255,255,255,.08);
}

/* Pastors */
.st-pastor-card{ text-align:left; }
.st-pastor-card h4{ margin:0 0 2px; font-size:17px; font-weight:700; }
.st-pastor-role{ color: var(--st-gold); font-size:13px; font-weight:600; margin-bottom:10px; }
.st-socials{ display:flex; gap:10px; }
.st-socials a{
  width:32px; height:32px; border-radius:50%; background: var(--st-cream);
  display:flex; align-items:center; justify-content:center; color: var(--st-text);
  text-decoration:none; font-size:13px;
}

/* Newsletter band */
.st-newsletter-inner{ display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap; }
.st-newsletter-left{ display:flex; align-items:center; gap:18px; color:#fff; }
.st-newsletter-icon{
  width:56px; height:56px; border-radius:50%; flex-shrink:0;
  background: linear-gradient(135deg, #d0577a, var(--st-purple-dark));
  display:flex; align-items:center; justify-content:center; font-size:22px; color:#fff;
}
.st-newsletter-left h4{ margin:0 0 4px; font-size:17px; color:#fff; }
.st-newsletter-left p{ margin:0; font-size:15px; color:#e6d9e3; }
.st-newsletter-form{ display:flex; gap:10px; flex-wrap:wrap; }
.st-newsletter-form input[type=email]{
  padding:14px 16px; border-radius:4px; border:none; min-width:260px; font-size:14px;
}
.st-newsletter-form button{
  background: var(--st-gold); color:#fff; border:none; padding:14px 26px;
  border-radius:4px; font-weight:700; font-size:13px; letter-spacing:1px; text-transform:uppercase; cursor:pointer;
}

/* ============ CONTACT PAGE ============ */
.st-contact-hero{
  position:relative; min-height:280px; display:flex; align-items:center;
  background-size:cover !important; background-position:center !important;
}
.st-contact-hero::before{
  content:""; position:absolute; inset:0; z-index:0;
  background: linear-gradient(100deg, rgba(44,20,48,.94) 30%, rgba(44,20,48,.55) 75%);
}
.st-contact-hero-inner{ position:relative; z-index:1; color:#fff; }
.st-contact-hero-inner h1{ font-size:42px; color:#fff; margin:0 0 16px; line-height:1.2; }
.st-contact-hero-inner p{ font-size:16px; color:#e6d9e3; max-width:480px; line-height:1.7; }

.st-form-row{ margin:0 0 18px; }
.st-form-row label{ display:block; font-size:13px; font-weight:700; margin-bottom:6px; }
.st-form-row .required{ color:#c0392b; }
.st-form-row input, .st-form-row select, .st-form-row textarea{
  width:100%; padding:13px 14px; border:1px solid #ddd; border-radius:4px; font-size:15.5px; font-family:inherit; background:#fff;
}
.st-form-row textarea{ min-height:130px; resize:vertical; }
.wpcf7-submit{
  background: var(--st-gold); color:#fff; border:none; padding:15px 34px;
  border-radius:4px; font-weight:700; font-size:13px; letter-spacing:1px; text-transform:uppercase; cursor:pointer;
}
.wpcf7-spinner{ display:none; }
/* Theme's default sets this text to white — invisible here since the form sits on a
   white card. Not just a style preference: without this override the success/error
   message is functionally unreadable after every submission. */
div.wpcf7-response-output{ border-radius:4px; margin:16px 0 0; padding:12px 16px; font-size:14px; color: var(--st-text) !important; background:#fff !important; text-transform:none !important; }
.wpcf7-mail-sent-ok{ border-color:#46b450 !important; background:#f0f9f0; }
.wpcf7-validation-errors, .wpcf7-mail-sent-ng{ border-color:#c0392b !important; background:#fdf0ef; }

.st-map-wrap{ position:relative; border-radius:6px; overflow:hidden; height:100%; min-height:420px; }
.st-map-wrap iframe{ width:100%; height:100%; min-height:420px; border:0; display:block; }
.st-map-card{
  position:absolute; left:24px; bottom:24px; background:#fff; padding:18px 20px;
  border-radius:6px; box-shadow: 0 8px 24px rgba(0,0,0,.18); max-width:230px;
}
.st-map-card-icon{ width:40px; height:40px; border-radius:50%; background: var(--st-gold); color:#fff; display:flex; align-items:center; justify-content:center; font-size:16px; margin-bottom:10px; }
.st-map-card h5{ margin:0 0 6px; font-size:15.5px; }
.st-map-card p{ margin:0 0 12px; font-size:15px; color:var(--st-text); }
.st-map-card a.st-btn{ padding:10px 16px; font-size:11.5px; }

.st-faq-item{ border-bottom:1px solid #e8e3dc; }
.st-faq-item summary{
  padding:18px 4px; font-size:16px; font-weight:600; color: var(--st-text);
  cursor:pointer; list-style:none; position:relative; display:flex; justify-content:space-between; align-items:center;
}
.st-faq-item summary::-webkit-details-marker{ display:none; }
.st-faq-item summary::after{ content:"+"; color: var(--st-gold); font-size:18px; font-weight:700; margin-left:12px; }
.st-faq-item[open] summary::after{ content:"\2212"; }
.st-faq-item p{ margin:0 4px 18px; font-size:15.5px; color:var(--st-text); line-height:1.7; }

@media (max-width: 782px){
  .st-heading{ font-size:26px; }
  .st-contact-hero-inner h1{ font-size:30px; }
  .st-newsletter-inner{ justify-content:center; text-align:center; }
}

/* Home "Latest Sermon" thumbnail (links to /sermons/) */
.st-sermon-thumb{ display:block; border-radius:6px; overflow:hidden; }
.st-sermon-thumb img{ display:block; width:100%; aspect-ratio:16/9; object-fit:cover; transition:transform .2s ease; }
.st-sermon-thumb:hover img{ transform:scale(1.03); }

/* Responsive YouTube embeds (Sermons page) */
.st-video-embed{ position:relative; padding-bottom:56.25%; height:0; overflow:hidden; border-radius:6px; box-shadow:0 4px 22px rgba(27,23,16,0.1); }
.st-video-embed iframe{ position:absolute; top:0; left:0; width:100%; height:100%; border:0; }
.st-yt-featured-title{ text-align:center; margin:16px 0 40px; font-size:16.5px; font-weight:600; color: var(--st-text); }
.st-yt-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
@media (max-width: 782px){ .st-yt-grid{ grid-template-columns:1fr; } }
.st-yt-card{
  display:block; text-align:left; background:#fff; border:none; padding:0; cursor:pointer;
  border-radius:6px; overflow:hidden; box-shadow:0 3px 14px rgba(27,23,16,0.08);
  transition:transform .15s ease, box-shadow .15s ease; font-family:inherit;
}
.st-yt-card:hover{ transform:translateY(-3px); box-shadow:0 8px 22px rgba(27,23,16,0.13); }
.st-yt-thumb{ display:block; position:relative; aspect-ratio:16/9; overflow:hidden; background:#000; }
.st-yt-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.st-yt-play{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:44px; height:44px; border-radius:50%; background:rgba(0,0,0,0.55); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:15px; padding-left:3px;
}
.st-yt-card-title{ display:block; padding:12px 14px 16px; font-size:14.5px; font-weight:600; color: var(--st-text); line-height:1.4; }

/* "I'm looking for..." shortcut cards */
.st-lookcard{
  display:block; background:#fff; border-radius:6px; padding:34px 24px 28px;
  text-align:center; text-decoration:none; position:relative;
  box-shadow:0 4px 18px rgba(27,23,16,0.06);
  transition:transform .15s ease, box-shadow .15s ease;
}
.st-lookcard:hover{ transform:translateY(-4px); box-shadow:0 10px 26px rgba(27,23,16,0.1); }
.st-lookcard-icon{ display:block; margin-bottom:16px; }
.st-lookcard-icon i{ font-size:30px; color: var(--st-gold); }
.st-lookcard h5{ margin:0 0 8px; font-size:17px; font-weight:700; color: var(--st-text); }
.st-lookcard p{ margin:0; font-size:15.5px; line-height:1.6; color:var(--st-text); }
.st-lookcard-arrow{ display:block; margin-top:14px; color: var(--st-gold); font-size:15px; }

/* Site-wide page-title photo header (used by every inner page, not just Contact).
   The theme's non-responsive title-image mode sizes the background at the image's
   native pixel width with the CSS default background-repeat, which tiles/gaps on
   any viewport wider than the source photo. Force proper full-bleed cover instead. */
.title.has_background{
  background-size: cover !important;
  background-repeat: no-repeat !important;
  background-position: center center !important;
}

/* Give page */
.st-scripture{ max-width:820px; margin:0 auto; display:flex; align-items:center; gap:28px; }
.st-scripture-icon{
  flex-shrink:0; width:64px; height:64px; border-radius:50%; border:1px solid var(--st-gold);
  display:flex; align-items:center; justify-content:center; font-size:24px; color:var(--st-gold);
}
.st-scripture-divider{ flex-shrink:0; width:1px; align-self:stretch; background:rgba(201,151,62,0.35); }
.st-scripture-text{ margin:0 0 8px; font-family:'Playfair Display', serif; font-style:italic; font-size:18px; line-height:1.5; color:#f2ece4; }
.st-scripture-ref{ margin:0; font-size:12.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--st-gold); }
@media (max-width: 782px){ .st-scripture{ flex-direction:column; text-align:center; } .st-scripture-divider{ display:none; } }

.st-give-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media (max-width: 900px){ .st-give-grid{ grid-template-columns:1fr; } }
.st-give-inperson{
  max-width:640px; margin:0 auto; text-align:center; font-size:16px; color:var(--st-text); line-height:1.7;
}
.st-give-inperson i{ color:var(--st-gold); margin-right:6px; }
.st-give-card{
  background:#fff; border-radius:8px; padding:34px 26px 28px; text-align:center;
  box-shadow:0 4px 18px rgba(27,23,16,0.06); display:flex; flex-direction:column; align-items:center;
}
.st-give-icon{ height:48px; display:flex; align-items:center; justify-content:center; margin-bottom:16px; font-size:38px; }
.st-give-logo-img{ display:block; max-height:100%; width:auto; }
.st-give-logo-round{ height:48px; width:48px; border-radius:10px; object-fit:cover; }
.st-give-logo-wide{ width:150px; max-width:100%; height:auto; }
.st-give-card h4{ margin:0 0 10px; font-size:17px; font-weight:700; color:var(--st-text); }
.st-give-card p{ margin:0 0 18px; font-size:15.5px; line-height:1.6; color:#544f47; }
.st-give-card .st-btn{ margin-bottom:14px; }
.st-give-email{
  font-weight:700; font-size:15px; color:var(--st-text); background:var(--st-cream);
  border-radius:5px; padding:10px 14px; margin-bottom:14px; word-break:break-word;
}
.st-give-note{ margin-top:auto !important; font-size:14px !important; color:var(--st-text) !important; }

.st-thankyou{ display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap; color:#fff; }
.st-thankyou-left{ display:flex; align-items:center; gap:18px; }
.st-thankyou-icon{
  flex-shrink:0; width:56px; height:56px; border-radius:50%; border:1px solid var(--st-gold);
  display:flex; align-items:center; justify-content:center; font-size:22px; color:var(--st-gold);
}
.st-thankyou-left h4{ margin:0 0 4px; font-size:17px; color:#fff; }
.st-thankyou-left p{ margin:0; font-size:15px; color:#e6d9e3; max-width:360px; }
.st-thankyou-right{ text-align:right; }
.st-thankyou-right p{ margin:0 0 12px; font-size:15px; color:#e6d9e3; }
@media (max-width: 782px){ .st-thankyou{ flex-direction:column; text-align:center; } .st-thankyou-right{ text-align:center; } }

/* About page */
.st-global-family{ display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap; border-top:1px solid #e8e3dc; padding-top:36px; }
.st-global-family-text{ max-width:420px; }
.st-global-family-text p:not(.st-eyebrow){ font-size:14px; color:var(--st-text); line-height:1.7; margin:0; }
.st-global-stats{ display:flex; gap:44px; flex-wrap:wrap; }
.st-global-stat{ display:flex; align-items:center; gap:14px; }
.st-global-stat i{ font-size:26px; color:var(--st-gold); }
.st-global-stat strong{ display:block; font-size:26px; font-weight:800; line-height:1.1; color:var(--st-text); }
.st-global-stat span{ display:block; font-size:12.5px; color:var(--st-text); }
@media (max-width: 782px){ .st-global-family{ flex-direction:column; align-items:flex-start; } }

.st-mv-grid{ display:grid; grid-template-columns:1fr 1fr; gap:40px; }
@media (max-width: 900px){ .st-mv-grid{ grid-template-columns:1fr; } }
.st-mv-row{ display:flex; gap:16px; align-items:flex-start; }
.st-mv-row i{ font-size:22px; color:var(--st-gold); margin-top:4px; flex-shrink:0; }
.st-mv-row h4{ margin:0 0 6px; font-size:15.5px; color:#fff; font-weight:700; }
.st-mv-row p{ margin:0; font-size:13.5px; color:#e6d9e3; line-height:1.6; }
.st-mv-vision-text{ font-size:14.5px; color:#e6d9e3; line-height:1.7; margin:0; }

.st-beliefs-grid{ display:grid; grid-template-columns:1fr 1fr; gap:0 40px; }
@media (max-width: 700px){ .st-beliefs-grid{ grid-template-columns:1fr; } }
.st-beliefs-list{ list-style:none; margin:0; padding:0; }
.st-beliefs-list li{ display:flex; gap:10px; align-items:flex-start; font-size:14px; color:var(--st-text); line-height:1.6; padding:10px 0; border-bottom:1px solid #efebe3; }
.st-beliefs-list li i{ color:var(--st-gold); margin-top:3px; flex-shrink:0; }

.st-closing{ text-align:center; color:#fff; }
.st-closing-quote{ font-family:'Playfair Display', serif; font-style:italic; font-size:22px; max-width:700px; margin:0 auto 10px; line-height:1.5; }
.st-closing-ref{ color:var(--st-gold); font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; margin:0 0 40px; }
.st-closing-stats{ display:flex; justify-content:center; gap:60px; flex-wrap:wrap; }
.st-closing-stats strong{ display:block; font-size:34px; font-weight:800; }
.st-closing-stats span{ display:block; font-size:13px; color:#cfc3d6; }

/* Site-wide: the theme's default body/paragraph text is 14px, weight 300, color
   #5b5b5b — thin and light. Every plain <p> inside a vc_column_text (Who We Are,
   pastor bio, and anywhere else on the site that isn't using a dedicated .st-*
   class) inherits that and reads too small/faint. Raise the baseline everywhere. */
.wpb_text_column p{ font-size:16px; line-height:1.75; color: var(--st-text); font-weight:400; }

/* About page: bump the slightly-small custom classes to match */
.st-global-family-text p:not(.st-eyebrow){ font-size:16px; }
.st-mv-row p{ font-size:15.5px; }
.st-mv-vision-text{ font-size:16px; }
.st-beliefs-list li{ font-size:16px; }

/* Events page — "Plan Your Visit" CTA row */
.st-visit-row .section_inner_margin{ display:flex; flex-wrap:wrap; align-items:center; }
.st-visit-row .wpb_column{ float:none; }
.st-visit-cta{ display:flex; align-items:center; gap:18px; }
.st-visit-cta-icon{
  width:52px; height:52px; border-radius:50%; flex-shrink:0; border:1px solid var(--st-gold);
  display:flex; align-items:center; justify-content:center; font-size:20px;
}
.st-visit-cta-text h4{ margin:0 0 4px; font-size:17px; color:#fff; }
.st-visit-cta-text p{ margin:0; font-size:15.5px; color:#c9c4bd; line-height:1.6; }
@media (max-width: 782px){ .st-visit-cta{ flex-direction:column; text-align:center; } }

/* Fixed-ratio frame for the About page pastor photo — crops to fill via object-fit
   instead of stretching, so any source photo's own dimensions/orientation (portrait,
   landscape, square) slots into the same footprint without skewing the layout. */
.st-pastor-photo{ border-radius:8px; overflow:hidden; aspect-ratio:1/1; }
.st-pastor-photo img{ width:100%; height:100%; object-fit:cover; object-position:top center; display:block; }
