/*
 Theme Name: Hello Elementor Child
 Theme URI: https://elementor.com/hello-theme/
 Description: Child theme for Hello Elementor with Diocese customizations
 Author: Diocese of NC SC KY
 Author URI: http://54.81.175.80/
 Template: hello-elementor
 Version: 1.5.3
 License: GNU General Public License v3 or later
 License URI: https://www.gnu.org/licenses/gpl-3.0.html
 Text Domain: hello-elementor-child
*/

/* ==========================================================================
   DIOCESE OF NC, SC & KY - PREMIUM REDESIGN v2
   Navy + Gold | Readable Typography | No Animations
   ========================================================================== */

/* ---------- CSS Variables ---------- */
:root {
  --dio-navy: #1B2A4A;
  --dio-navy-light: #243558;
  --dio-navy-dark: #111D35;
  --dio-gold: #C8963E;
  --dio-gold-light: #E2B968;
  --dio-gold-hover: #D4A44E;
  --dio-ivory: #FAF8F5;
  --dio-white: #FFFFFF;
  --dio-charcoal: #2D2D2D;
  --dio-slate: #5A6577;
  --dio-border: #E8E4DF;
  --dio-shadow: rgba(27, 42, 74, 0.12);
  --dio-shadow-hover: rgba(27, 42, 74, 0.22);
}

/* Anchor scroll offset for sticky header */
html {
  scroll-padding-top: 120px;
  scroll-behavior: smooth;
}

/* Global: prevent italic on ALL headings site-wide */
h1, h2, h3, h4, h5, h6,
.elementor-heading-title,
.elementor-widget-text-editor h1,
.elementor-widget-text-editor h2,
.elementor-widget-text-editor h3,
.elementor-widget-html h1,
.elementor-widget-html h2,
.elementor-widget-html h3,
.dio-state-heading,
.dio-father-name,
.dio-card-title,
.dio-msg-title,
.dio-church-card h3,
.dio-clergy-card h3 {
  font-style: normal !important;
}

/* ==========================================================================
   PART 1: GLOBAL ANIMATION REMOVAL
   Kill all Elementor entrance animations. Keep only button/card hovers.
   ========================================================================== */

/* Force all animated elements to be visible immediately */
.elementor-element[data-settings*="animation"],
.elementor-element[data-settings*="_animation"],
.elementor-invisible {
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
  animation: none !important;
  -webkit-animation: none !important;
}

/* Kill entrance animation classes */
.animated, .fadeIn, .fadeInUp, .fadeInDown, .fadeInLeft, .fadeInRight,
.slideInUp, .slideInDown, .slideInLeft, .slideInRight,
.zoomIn, .bounceIn, .fadeInUpBig, .fadeInDownBig,
.bounceInUp, .bounceInDown, .bounceInLeft, .bounceInRight {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
  -webkit-animation: none !important;
  animation-duration: 0s !important;
  -webkit-animation-duration: 0s !important;
}

/* Remove animation delays */
.elementor-element[data-settings] {
  animation-delay: 0s !important;
  -webkit-animation-delay: 0s !important;
}

/* ==========================================================================
   PART 2: TYPOGRAPHY & READABILITY OVERHAUL
   ========================================================================== */

/* Global body text */
body, body.elementor-default, body.elementor-page {
  font-family: "Montserrat", sans-serif !important;
  font-size: 19px !important;
  line-height: 1.85 !important;
  font-weight: 500 !important;
  color: var(--dio-charcoal) !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Force Montserrat on all text elements */
p, li, td, th, span, a, label, input, textarea, select, blockquote,
.elementor-widget-text-editor,
.elementor-text-editor,
.elementor-text-editor p,
.elementor-text-editor span,
.elementor-text-editor li,
.elementor-widget-heading .elementor-heading-title[class*="elementor-size-"] {
  font-family: "Montserrat", sans-serif !important;
}

/* Body text in Elementor widgets */
.elementor-text-editor,
.elementor-text-editor p,
.elementor-widget-text-editor p,
.elementor-widget-text-editor {
  font-family: "Montserrat", sans-serif !important;
  font-size: 19px !important;
  line-height: 1.85 !important;
  font-weight: 500 !important;
  color: var(--dio-charcoal);
}

/* Paragraphs need spacing */
.elementor-text-editor p {
  margin-bottom: 1.3em !important;
}

/* Body text on dark backgrounds */
.elementor-element-27f7f29e .elementor-text-editor,
.elementor-element-27f7f29e .elementor-text-editor p,
.elementor-element-f1c771f .elementor-text-editor,
.elementor-element-f1c771f .elementor-text-editor p,
footer .elementor-text-editor,
footer .elementor-text-editor p {
  color: rgba(255, 255, 255, 0.92) !important;
  font-size: 18px !important;
}

/* Heading hierarchy - Playfair Display */
h1.elementor-heading-title,
.elementor-widget-heading h1 {
  font-family: "Playfair Display", serif !important;
  font-weight: 700 !important;
  font-style: normal !important;
  font-size: 44px !important;
  line-height: 1.2 !important;
  color: var(--dio-white) !important;
  letter-spacing: -0.5px !important;
}

h2.elementor-heading-title,
.elementor-widget-heading h2 {
  font-family: "Montserrat", sans-serif !important;
  font-weight: 700 !important;
  font-style: normal !important;
  font-size: 34px !important;
  line-height: 1.25 !important;
  color: var(--dio-navy) !important;
  letter-spacing: -0.3px !important;
}

h3.elementor-heading-title,
.elementor-widget-heading h3 {
  font-family: "Montserrat", sans-serif !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  line-height: 1.4 !important;
  color: var(--dio-gold) !important;
  letter-spacing: 2.5px !important;
  text-transform: uppercase !important;
}

h4.elementor-heading-title,
.elementor-widget-heading h4 {
  font-family: "Montserrat", sans-serif !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  line-height: 1.4 !important;
  color: var(--dio-gold) !important;
  letter-spacing: 2.5px !important;
  text-transform: uppercase !important;
}

/* H2 on dark sections */
.elementor-element-27f7f29e h2.elementor-heading-title,
.elementor-element-f1c771f h2.elementor-heading-title,
.elementor-element-f1c771f h3.elementor-heading-title {
  color: var(--dio-white) !important;
}

/* Eyebrow labels on dark bg */
.elementor-element-27f7f29e h3.elementor-heading-title,
.elementor-element-27f7f29e h4.elementor-heading-title,
.elementor-element-f1c771f h4.elementor-heading-title {
  color: var(--dio-gold-light) !important;
}

/* ==========================================================================
   PART 3: HEADER
   ========================================================================== */

header.elementor-location-header .elementor-section,
header.elementor-location-header .elementor-top-section,
.elementor-element-97874d6 {
  background-color: var(--dio-navy) !important;
  border-bottom: 1px solid rgba(200, 150, 62, 0.25) !important;
}

header.elementor-location-header {
  position: sticky !important;
  top: 0;
  z-index: 9999;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* Nav links */
header .elementor-nav-menu a.elementor-item {
  color: var(--dio-white) !important;
  font-family: "Montserrat", sans-serif !important;
  font-weight: 500 !important;
  font-size: 12px !important;
  letter-spacing: 0.3px !important;
  text-transform: uppercase !important;
  transition: color 0.2s ease;
}

header .elementor-nav-menu a.elementor-item:hover,
header .elementor-nav-menu a.elementor-item.elementor-item-active {
  color: var(--dio-gold-light) !important;
}

header .elementor-nav-menu--main .e--pointer-underline .elementor-item::after,
header .elementor-nav-menu--main .e--pointer-underline .elementor-item::before {
  background-color: var(--dio-gold) !important;
}

/* Dropdown */
header .elementor-nav-menu--dropdown a.elementor-sub-item {
  color: var(--dio-white) !important;
  font-family: "Montserrat", sans-serif !important;
  font-weight: 500 !important;
  font-size: 13px !important;
}

header .elementor-nav-menu--dropdown {
  background-color: var(--dio-navy-light) !important;
  border: 1px solid rgba(200, 150, 62, 0.2) !important;
  border-radius: 8px !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25) !important;
  overflow: hidden;
}

header .elementor-nav-menu--dropdown a:hover {
  background-color: rgba(200, 150, 62, 0.1) !important;
  color: var(--dio-gold-light) !important;
}

/* Active/current submenu items */
header .elementor-nav-menu--dropdown .current-menu-item a,
header .elementor-nav-menu--dropdown .current_page_item a,
header .elementor-nav-menu--dropdown .current-menu-item a.elementor-sub-item,
header .elementor-nav-menu--dropdown li.current-menu-item > a {
  color: var(--dio-gold-light) !important;
  background-color: rgba(200, 150, 62, 0.15) !important;
}

/* Logo badge */
header .elementor-widget-image img,
.elementor-element-11a2c90c img {
  background: #FFFFFF;
  padding: 6px;
  border-radius: 10px;
  border: 1px solid rgba(200, 150, 62, 0.3);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
  max-height: 65px !important;
  width: auto !important;
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

header .elementor-widget-image img:hover,
.elementor-element-11a2c90c img:hover {
  box-shadow: 0 4px 18px rgba(200, 150, 62, 0.25);
  border-color: var(--dio-gold);
}

/* Mobile hamburger */
header .elementor-menu-toggle {
  color: var(--dio-gold) !important;
}
header .elementor-menu-toggle svg {
  fill: var(--dio-gold) !important;
}

/* ==========================================================================
   PART 4: HERO SECTION
   ========================================================================== */

/* Hero overlay & text styles moved to Part 19 */

/* ==========================================================================
   PART 5: SECTION BACKGROUNDS
   ========================================================================== */

.elementor-element-5e59dc32 {
  background-color: var(--dio-ivory) !important;
}
.elementor-element-5e59dc32 > .elementor-background-overlay {
  background-color: transparent !important;
}

.elementor-element-49631621 {
  background-color: var(--dio-white) !important;
}

.elementor-element-27f7f29e {
  background-color: var(--dio-navy) !important;
}
.elementor-element-27f7f29e .elementor-heading-title,
.elementor-element-27f7f29e .elementor-text-editor,
.elementor-element-27f7f29e .elementor-text-editor p {
  color: var(--dio-white) !important;
}

.elementor-element-7c393554 {
  background-color: var(--dio-ivory) !important;
}

.elementor-element-f1c771f {
  background-color: var(--dio-navy) !important;
}
.elementor-element-f1c771f .elementor-heading-title {
  color: var(--dio-white) !important;
}
.elementor-element-f1c771f .elementor-text-editor,
.elementor-element-f1c771f .elementor-text-editor p {
  color: #FFFFFF !important;
  opacity: 1 !important;
}

/* ==========================================================================
   PART 6: BUTTONS
   ========================================================================== */

.elementor-button {
  background-color: var(--dio-gold) !important;
  color: var(--dio-navy) !important;
  font-family: "Montserrat", sans-serif !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
  border-radius: 6px !important;
  padding: 14px 32px !important;
  border: 2px solid var(--dio-gold) !important;
  transition: background-color 0.2s ease, box-shadow 0.2s ease;
  box-shadow: 0 4px 15px rgba(200, 150, 62, 0.25);
}

.elementor-button:hover {
  background-color: var(--dio-gold-hover) !important;
  color: var(--dio-navy) !important;
  box-shadow: 0 6px 25px rgba(200, 150, 62, 0.35) !important;
}

/* Ghost button on dark bg */
.elementor-element-27f7f29e .elementor-button,
.elementor-element-f1c771f .elementor-button {
  background-color: transparent !important;
  color: var(--dio-gold-light) !important;
  border: 2px solid var(--dio-gold) !important;
}
.elementor-element-27f7f29e .elementor-button:hover,
.elementor-element-f1c771f .elementor-button:hover {
  background-color: var(--dio-gold) !important;
  color: var(--dio-navy) !important;
}

/* ==========================================================================
   PART 7: CARDS
   ========================================================================== */

.elementor-element-7c393554 .elementor-col-33,
.elementor-element-49631621 .elementor-col-33,
.elementor-element-49631621 .elementor-col-50 {
  background: var(--dio-white);
  border-radius: 12px;
  padding: 30px 24px;
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
  box-shadow: 0 2px 12px var(--dio-shadow);
  border: 1px solid var(--dio-border);
}

.elementor-element-7c393554 .elementor-col-33:hover,
.elementor-element-49631621 .elementor-col-33:hover,
.elementor-element-49631621 .elementor-col-50:hover {
  box-shadow: 0 8px 30px var(--dio-shadow-hover);
  border-color: var(--dio-gold);
}

.elementor-element-7c393554 .elementor-col-33::before,
.elementor-element-49631621 .elementor-col-33::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 50px;
  height: 3px;
  background: var(--dio-gold);
  border-radius: 0 0 3px 3px;
}

.elementor-element-7c393554 .elementor-col-33,
.elementor-element-49631621 .elementor-col-33 {
  position: relative;
}

.elementor-element-7c393554 h2.elementor-heading-title,
.elementor-element-49631621 h2.elementor-heading-title {
  font-size: 22px !important;
  color: var(--dio-navy) !important;
}

/* ==========================================================================
   PART 8: DIOCESE TWO-COLUMN SECTION
   ========================================================================== */

.elementor-element-1f982196 {
  border-radius: 16px !important;
  overflow: hidden;
}
.elementor-element-1f982196 > .elementor-background-overlay {
  background: linear-gradient(180deg, rgba(27,42,74,0.3) 0%, rgba(27,42,74,0.75) 100%) !important;
  opacity: 1 !important;
}

.elementor-element-7628d24a h2.elementor-heading-title {
  color: var(--dio-charcoal) !important;
  font-size: 19px !important;
  line-height: 1.8 !important;
  font-family: "Montserrat", sans-serif !important;
  font-weight: 500 !important;
}

/* ==========================================================================
   PART 9: BISHOP SECTION
   ========================================================================== */

.elementor-element-27f7f29e .elementor-widget-image img {
  border-radius: 12px;
  border: 3px solid var(--dio-gold);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2);
}

/* ==========================================================================
   PART 10: IMAGES
   ========================================================================== */

.elementor-widget-image img {
  border-radius: 8px;
}
.elementor-widget-image-carousel img {
  border-radius: 10px;
  box-shadow: 0 4px 20px var(--dio-shadow);
}

/* ==========================================================================
   PART 11: FOOTER
   ========================================================================== */

footer.elementor-location-footer .elementor-top-section,
footer.elementor-location-footer .elementor-section,
.elementor-element-49bf8a70 {
  background-color: var(--dio-navy) !important;
}

footer.elementor-location-footer {
  
}

footer.elementor-location-footer h2.elementor-heading-title {
  color: var(--dio-gold-light) !important;
  font-family: "Montserrat", sans-serif !important;
  font-weight: 600 !important;
  font-size: 18px !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
  margin-bottom: 16px;
}

footer.elementor-location-footer .elementor-text-editor,
footer.elementor-location-footer .elementor-text-editor p {
  color: rgba(255, 255, 255, 0.85) !important;
  font-size: 15px !important;
}

footer.elementor-location-footer .elementor-icon-list-text {
  color: rgba(255, 255, 255, 0.85) !important;
  font-size: 15px !important;
}
footer.elementor-location-footer .elementor-icon-list-item:hover .elementor-icon-list-text {
  color: var(--dio-gold-light) !important;
}

footer.elementor-location-footer .elementor-widget-image img {
  background: #FFFFFF;
  padding: 6px;
  border-radius: 8px;
  max-height: 70px !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
}

.elementor-element-5b14d0d4 {
  border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
  margin-top: 30px !important;
  padding-top: 20px !important;
}

footer .elementor-social-icon {
  background-color: rgba(255, 255, 255, 0.1) !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  transition: background-color 0.2s ease;
  border-radius: 50% !important;
}
footer .elementor-social-icon:hover {
  background-color: var(--dio-gold) !important;
  border-color: var(--dio-gold) !important;
}
footer .elementor-social-icon svg,
footer .elementor-social-icon i {
  color: var(--dio-white) !important;
  fill: var(--dio-white) !important;
}

/* ==========================================================================
   PART 12: DIVIDERS & ICON LISTS
   ========================================================================== */

.elementor-widget-divider .elementor-divider-separator {
  border-color: var(--dio-gold) !important;
  opacity: 0.4;
}

.elementor-icon-list-text {
  font-family: "Montserrat", sans-serif !important;
  font-size: 18px !important;
}
.elementor-icon-list-item:hover .elementor-icon-list-text {
  color: var(--dio-gold-light) !important;
}

/* ==========================================================================
   PART 13: INNER PAGE HERO BANNERS
   ========================================================================== */

.page:not(.home) .elementor-top-section:first-of-type .elementor-background-overlay,
.page:not(.home) main .elementor-top-section:first-child .elementor-background-overlay {
  background: linear-gradient(160deg, rgba(27,42,74,0.9) 0%, rgba(27,42,74,0.65) 100%) !important;
  opacity: 1 !important;
}

/* ==========================================================================
   PART 14: CHURCHES PAGE - CARD GRID
   ========================================================================== */

/* State section heading */
.dio-state-section {
  margin-bottom: 48px;
}

.dio-state-heading {
  font-family: "Montserrat", sans-serif;
  font-size: 32px;
  font-weight: 700;
  font-style: normal;
  color: var(--dio-navy);
  margin-bottom: 8px;
  line-height: 1.3;
}

.dio-state-count {
  font-family: "Montserrat", sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: var(--dio-gold);
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 28px;
}

/* Church card grid */
.dio-church-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 48px;
}

.dio-church-card {
  background: var(--dio-white);
  border: 1px solid var(--dio-border);
  border-radius: 12px;
  padding: 32px 24px;
  box-shadow: 0 2px 12px var(--dio-shadow);
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
  position: relative;
  overflow: hidden;
}

.dio-church-card::before {  display: none;}

.dio-church-card:hover {  box-shadow: 0 4px 16px rgba(0,0,0,0.10);  border-color: #ccc;}

.dio-church-card h3 {
  font-family: "Montserrat", sans-serif !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  color: var(--dio-navy) !important;
  margin: 0 0 6px 0 !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

.dio-church-card .dio-city {
  font-family: "Montserrat", sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: var(--dio-gold);
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 16px;
}

.dio-church-card .dio-detail {
  font-family: "Montserrat", sans-serif;
  font-size: 15px;
  line-height: 1.6;
  color: var(--dio-charcoal);
  margin-bottom: 8px;
  display: flex;
  gap: 8px;
}

.dio-church-card .dio-detail .dio-icon {
  flex-shrink: 0;
  width: 18px;
  text-align: center;
  color: var(--dio-gold);
}

/* SVG icons in detail rows and link buttons */
.dio-svg-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  color: var(--dio-gold);
}
.dio-svg-icon svg {
  width: 16px;
  height: 16px;
  vertical-align: middle;
}
.dio-church-card .dio-detail .dio-svg-icon {
  margin-top: 2px;
}
.dio-church-card .dio-links a .dio-svg-icon {
  color: inherit;
}


/* Clergy page SVG icons */
.dio-clergy-card .dio-contact-links a svg {
  width: 14px;
  height: 14px;
  vertical-align: -2px;
  margin-right: 4px;
  color: var(--dio-gold);
}
.dio-clergy-card .dio-contact-links a:hover svg {
  color: var(--dio-white);
}

.dio-church-card .dio-clergy {
  font-size: 15px;
  color: var(--dio-charcoal);
  margin-bottom: 4px;
}

.dio-church-card .dio-clergy strong {
  color: var(--dio-navy);
}

.dio-church-card .dio-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--dio-border);
}

.dio-church-card .dio-links a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: "Montserrat", sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: var(--dio-gold) !important;
  text-decoration: none !important;
  padding: 6px 12px;
  border: 1px solid rgba(200, 150, 62, 0.3);
  border-radius: 6px;
  transition: background-color 0.2s ease, color 0.2s ease;
}



/* Google Maps embed section */
.dio-map-section {
  margin-top: 48px;
  text-align: center;
}

.dio-map-section h2 {
  font-family: "Montserrat", sans-serif;
  font-size: 28px;
  font-weight: 700;
  color: var(--dio-navy);
  margin-bottom: 20px;
}

.dio-map-section iframe {
  border-radius: 12px;
  box-shadow: 0 4px 20px var(--dio-shadow);
  border: 1px solid var(--dio-border);
}

.dio-map-section .dio-map-link {
  display: inline-block;
  margin-top: 16px;
  font-family: "Montserrat", sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: var(--dio-gold) !important;
  text-decoration: none !important;
  padding: 12px 28px;
  border: 2px solid var(--dio-gold);
  border-radius: 6px;
  transition: background-color 0.2s ease;
}

.dio-map-section .dio-map-link:hover {
  background-color: var(--dio-gold);
  color: var(--dio-navy) !important;
}

/* ==========================================================================
   PART 15: CLERGY DIRECTORY - PROFILE CARDS
   ========================================================================== */

.dio-clergy-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 48px;
}

.dio-clergy-card {
  background: var(--dio-white);
  border: 1px solid #ddd;
  border-radius: 12px;
  padding: 32px 24px;
  
  box-shadow: 0 1px 4px rgba(0,0,0,0.06);
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
  position: relative;
}

.dio-clergy-card::before {  display: none;}

.dio-clergy-card:hover {  box-shadow: 0 4px 16px rgba(0,0,0,0.10);  border-color: #ccc;}

.dio-clergy-card .dio-title {
  font-family: "Montserrat", sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: var(--dio-gold);
  letter-spacing: 0.5px;
  text-transform: uppercase;
  margin-bottom: 12px;
  text-align: center;
}

.dio-clergy-card .dio-church-name {
  font-family: "Montserrat", sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: var(--dio-slate);
  margin-bottom: 12px;
  text-align: center;
}

.dio-clergy-card .dio-bio {
  font-family: "Montserrat", sans-serif;
  font-size: 14px;
  line-height: 1.7;
  color: var(--dio-charcoal);
  margin-bottom: 12px;
}

.dio-clergy-card .dio-meta {
  font-family: "Montserrat", sans-serif;
  font-size: 13px;
  color: var(--dio-slate);
  margin-bottom: 4px;
}

.dio-clergy-card .dio-meta strong {
  color: var(--dio-charcoal);
}

.dio-clergy-card .dio-contact-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--dio-border);
}

.dio-clergy-card .dio-contact-links a {
  font-family: "Montserrat", sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: var(--dio-gold) !important;
  text-decoration: none !important;
  padding: 5px 10px;
  border: 1px solid rgba(200, 150, 62, 0.3);
  border-radius: 4px;
  transition: background-color 0.2s ease;
}

.dio-clergy-card .dio-contact-links a:hover {
  background-color: var(--dio-gold);
  color: var(--dio-white) !important;
}

/* Deacons: simpler, compact cards */
.dio-deacons-section h2 {
  font-family: "Montserrat", sans-serif;
  font-size: 28px;
  font-weight: 700;
  color: var(--dio-navy);
  margin-bottom: 20px;
}

.dio-deacon-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 48px;
}

.dio-deacon-card {
  background: var(--dio-white);
  border: 1px solid var(--dio-border);
  border-radius: 8px;
  padding: 20px;
  box-shadow: 0 1px 8px var(--dio-shadow);
  transition: box-shadow 0.2s ease;
}

.dio-deacon-card:hover {
  box-shadow: 0 4px 16px var(--dio-shadow-hover);
}

.dio-deacon-card h4 {
  font-family: "Montserrat", sans-serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  color: var(--dio-navy) !important;
  margin: 0 0 6px 0 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

.dio-deacon-card .dio-church-name {
  font-size: 13px;
  color: var(--dio-slate);
  margin-bottom: 4px;
}

.dio-deacon-card .dio-meta {
  font-size: 12px;
  color: var(--dio-slate);
}

/* ==========================================================================
   PART 16: FAITH PAGE & RESOURCES
   ========================================================================== */

.dio-faith-section {
  margin-bottom: 48px;
}

.dio-faith-section h2 {
  font-family: "Montserrat", sans-serif;
  font-size: 34px;
  font-weight: 700;
  font-style: normal;
  color: var(--dio-navy);
  margin-bottom: 16px;
  letter-spacing: -0.3px;
  line-height: 1.25;
}

.dio-faith-section p {
  font-family: "Montserrat", sans-serif;
  font-size: 17px;
  line-height: 1.75;
  color: var(--dio-charcoal);
  margin-bottom: 1em;
}

.dio-faith-section ul {
  list-style: none;
  padding: 0;
}

.dio-faith-section ul li {
  font-family: "Montserrat", sans-serif;
  font-size: 16px;
  line-height: 1.7;
  color: var(--dio-charcoal);
  padding: 8px 0 8px 24px;
  position: relative;
}

.dio-faith-section ul li::before {
  content: '\2720';
  position: absolute;
  left: 0;
  color: var(--dio-gold);
}

/* Resource cards */
.dio-resource-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 24px;
}

.dio-resource-card {
  background: var(--dio-white);
  border: 1px solid var(--dio-border);
  border-radius: 10px;
  padding: 24px;
  box-shadow: 0 2px 10px var(--dio-shadow);
  transition: box-shadow 0.2s ease;
}

.dio-resource-card:hover {
  box-shadow: 0 6px 24px var(--dio-shadow-hover);
}

.dio-resource-card h3 {
  font-family: "Montserrat", sans-serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  color: var(--dio-navy) !important;
  margin: 0 0 12px 0 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

.dio-resource-card a {
  display: block;
  font-family: "Montserrat", sans-serif;
  font-size: 15px;
  color: var(--dio-gold) !important;
  text-decoration: none !important;
  padding: 6px 0;
  transition: color 0.2s ease;
}

.dio-resource-card a:hover {
  color: var(--dio-gold-hover) !important;
  text-decoration: underline !important;
}

/* ==========================================================================
   PART 17: GENERAL STYLES
   ========================================================================== */

/* Selection */
::selection {
  background-color: var(--dio-gold);
  color: var(--dio-navy);
}

/* Links */
a:where(:not(.wp-element-button)):where(:not(.elementor-item)):where(:not(.elementor-sub-item)):where(:not(.elementor-button)) {
  color: var(--dio-gold);
  text-decoration: none;
  transition: color 0.2s ease;
}
a:where(:not(.wp-element-button)):where(:not(.elementor-item)):where(:not(.elementor-sub-item)):where(:not(.elementor-button)):hover {
  color: var(--dio-gold-hover);
}

/* Smooth scrolling */
html {
  scroll-behavior: smooth;
}

/* Focus outline */
:focus-visible {
  outline: 2px solid var(--dio-gold);
  outline-offset: 3px;
  border-radius: 4px;
}

/* Scrollbar */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: var(--dio-ivory); }
::-webkit-scrollbar-thumb { background: var(--dio-gold); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--dio-gold-hover); }

/* ==========================================================================
   PART 18: RESPONSIVE
   ========================================================================== */

@media (max-width: 1024px) {
  h1.elementor-heading-title, .elementor-widget-heading h1 {
    font-size: 34px !important;
  }
  h2.elementor-heading-title, .elementor-widget-heading h2 {
    font-size: 28px !important;
  }
  .elementor-button {
    padding: 12px 24px !important;
    font-size: 13px !important;
  }
  .dio-church-grid,
  .dio-clergy-grid,
  .dio-resource-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .dio-deacon-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .dio-stats-counter-row {
    gap: 0 !important;
    padding: 10px 20px !important;
  }
  .dio-stat-item {
    padding: 0 30px !important;
  }
  .dio-counter,
  .dio-counter-suffix {
    font-size: 42px;
  }
  .dio-feature-cards-row {
    gap: 24px;
  }
  .dio-feature-card {
    padding: 36px 24px 30px;
  }
  .dio-messages-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 767px) {
  body, body.elementor-default, body.elementor-page {
    font-size: 18px !important;
  }
  .elementor-text-editor,
  .elementor-text-editor p,
  .elementor-widget-text-editor p {
    font-size: 18px !important;
  }
  h1.elementor-heading-title, .elementor-widget-heading h1 {
    font-size: 28px !important;
    padding: 0 16px !important;
  }
  h2.elementor-heading-title, .elementor-widget-heading h2 {
    font-size: 24px !important;
  }
  h3.elementor-heading-title, h4.elementor-heading-title {
    font-size: 12px !important;
  }

  header.elementor-location-header {
    position: sticky !important;
  }
  header .elementor-nav-menu--dropdown {
    background-color: var(--dio-navy) !important;
    border-radius: 0 !important;
  }

  .elementor-element-7c393554 .elementor-col-33,
  .elementor-element-49631621 .elementor-col-33 {
    margin-bottom: 16px;
    padding: 24px 20px;
  }

  .elementor-element-77989590 {
    padding-top: 180px !important;
    padding-bottom: 100px !important;
  }

  .dio-church-grid,
  .dio-clergy-grid,
  .dio-resource-grid {
    grid-template-columns: 1fr;
  }
  .dio-deacon-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .dio-state-heading {
    font-size: 26px;
  }
}

/* ==========================================================================
   PART 19: TEXT VISIBILITY FIXES
   Ensure text never blends with backgrounds
   ========================================================================== */

/* Gold background sections - text must be navy/dark */
.elementor-element-7628d24a .elementor-heading-title,
.elementor-element-7628d24a .elementor-text-editor,
.elementor-element-7628d24a .elementor-text-editor p,
.elementor-element-7628d24a h2.elementor-heading-title {
  color: var(--dio-navy) !important;
}

/* Navy/dark background sections - text must be white */
.elementor-element-77989590 .elementor-widget-text-editor *,
.elementor-element-27f7f29e .elementor-widget-text-editor *,
.elementor-element-f1c771f .elementor-widget-text-editor * {
  color: #FFFFFF !important;
}

/* Eyebrow labels on navy bg should be gold */
.elementor-element-77989590 h3.elementor-heading-title,
.elementor-element-27f7f29e h3.elementor-heading-title,
.elementor-element-27f7f29e h4.elementor-heading-title,
.elementor-element-f1c771f h3.elementor-heading-title,
.elementor-element-f1c771f h4.elementor-heading-title {
  color: var(--dio-gold-light) !important;
}

/* Hero text - pure white, strong shadow for readability on icon */
.elementor-element-77989590 h1.elementor-heading-title,
.elementor-element-77989590 h3.elementor-heading-title {
  color: #FFFFFF !important;
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.4);
}

.elementor-element-77989590 .elementor-text-editor,
.elementor-element-77989590 .elementor-text-editor p {
  color: #FFFFFF !important;
  opacity: 1 !important;
}

/* Hero eyebrow stays gold */
.elementor-element-77989590 h3.elementor-heading-title {
  color: var(--dio-gold-light) !important;
}

/* Hero overlay: strong navy gradient for readability over Christ icon */
.elementor-element-77989590 > .elementor-background-overlay {
  background: linear-gradient(
    160deg,
    rgba(27, 42, 74, 0.88) 0%,
    rgba(27, 42, 74, 0.75) 40%,
    rgba(27, 42, 74, 0.60) 100%
  ) !important;
  opacity: 1 !important;
}

/* Light/ivory background sections - text dark */
.elementor-element-5e59dc32 .elementor-text-editor p,
.elementor-element-49631621 .elementor-text-editor p,
.elementor-element-7c393554 .elementor-text-editor p {
  color: var(--dio-charcoal) !important;
}

.elementor-element-5e59dc32 h2.elementor-heading-title,
.elementor-element-49631621 h2.elementor-heading-title,
.elementor-element-7c393554 h2.elementor-heading-title {
  color: var(--dio-navy) !important;
}

/* Inner page hero banners - all text white on dark backgrounds */
.page:not(.home) .elementor-top-section:first-of-type h1.elementor-heading-title,
.page:not(.home) .elementor-top-section:first-of-type h2.elementor-heading-title,
.page:not(.home) .elementor-top-section:first-of-type h3.elementor-heading-title,
.page:not(.home) .elementor-top-section:first-of-type h4.elementor-heading-title,
.page:not(.home) .elementor-top-section:first-of-type .elementor-text-editor,
.page:not(.home) .elementor-top-section:first-of-type .elementor-text-editor p,
.page:not(.home) .elementor-top-section:first-of-type .elementor-widget-text-editor,
.page:not(.home) .elementor-top-section:first-of-type .elementor-widget-text-editor p,
.elementor-page .elementor-top-section:first-of-type .elementor-text-editor p,
.elementor-page .elementor-top-section:first-of-type .elementor-widget-text-editor p {
  color: #FFFFFF !important;
}
/* Hero subtitle styling */
.page:not(.home) .elementor-top-section:first-of-type .elementor-text-editor p {
  font-size: 18px !important;
  opacity: 0.92 !important;
  max-width: 700px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Diocese at a Glance page - first section dark bg */
.page-id-102 .elementor-top-section:first-of-type,
.page-id-102 .elementor-element-7bec650d {
  background-color: var(--dio-navy) !important;
}
.page-id-102 .elementor-element-7bec650d h2.elementor-heading-title {
  color: #FFFFFF !important;
}

/* Churches/Clergy text on ivory bg */
.dio-church-card, .dio-clergy-card, .dio-deacon-card,
.dio-faith-section p, .dio-faith-section li {
  color: var(--dio-charcoal) !important;
}

/* ==========================================================================
   PART 20: NEW HOMEPAGE SECTIONS
   ========================================================================== */

/* Hero - Christ Pantocrator: position icon face properly */
.elementor-element-home_hero {
  background-position: center 25% !important;
}

/* Stats bar styling */
.elementor-element-home_stats .elementor-col-25 {
  text-align: center;
  border-right: 1px solid rgba(255,255,255,0.1);
}
.elementor-element-home_stats .elementor-col-25:last-child {
  border-right: none;
}

/* Quick links cards - add card styling */
.elementor-element-home_links .elementor-column {
  background: var(--dio-white);
  border: 1px solid var(--dio-border);
  border-radius: 12px;
  padding: 36px 28px !important;
  margin: 0 12px;
  box-shadow: 0 2px 12px rgba(27, 42, 74, 0.08);
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
  position: relative;
  overflow: hidden;
}
.elementor-element-home_links .elementor-column::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 50px;
  height: 3px;
  background: var(--dio-gold);
  border-radius: 0 0 3px 3px;
}
.elementor-element-home_links .elementor-column:hover {
  box-shadow: 0 8px 30px rgba(27, 42, 74, 0.15);
  border-color: var(--dio-gold);
}

/* Bishop section: ensure all text is white */
.elementor-element-home_bishop h2.elementor-heading-title,
.elementor-element-home_bishop h3.elementor-heading-title,
.elementor-element-home_bishop h4.elementor-heading-title,
.elementor-element-home_bishop .elementor-text-editor p,
.elementor-element-home_bishop .elementor-widget-text-editor p {
  color: var(--dio-white) !important;
}
.elementor-element-home_bishop h3.elementor-heading-title,
.elementor-element-home_bishop h4.elementor-heading-title {
  color: var(--dio-gold-light) !important;
}

/* ============================================
   PART 21: PHOTO HERO (v3, 2026-07-04)
   Cathedral interior photo (St. Mark, Myrtle Beach)
   with navy overlay. Replaced the flat navy +
   cross-pattern hero. Content markup lives in an
   Elementor HTML widget; classes in PART 27.
   ============================================ */

.dio-hero-pattern {
  position: relative;
  background-color: var(--dio-navy) !important;
  background-image: url('/wp-content/uploads/2026/07/diocese-hero-cathedral.jpg') !important;
  background-size: cover !important;
  background-position: center 58% !important;
  background-repeat: no-repeat !important;
  min-height: 72vh !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
}

@media (max-width: 767px) {
  .dio-hero-pattern {
    background-image: url('/wp-content/uploads/2026/07/diocese-hero-cathedral-mobile.jpg') !important;
    min-height: 78vh !important;
  }
}

/* Navy wash + edge vignette so white/gold type stays readable */
.dio-hero-pattern::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background:
    linear-gradient(180deg, rgba(16, 26, 47, 0.72) 0%, rgba(16, 26, 47, 0.45) 42%, rgba(16, 26, 47, 0.78) 100%);
  z-index: 0;
  pointer-events: none;
}

.dio-hero-pattern::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(ellipse at center, transparent 30%, rgba(12, 20, 38, 0.55) 100%);
  z-index: 1;
  pointer-events: none;
}

/* Ensure hero content sits above the pattern */
.dio-hero-pattern > .elementor-container,
.dio-hero-pattern .elementor-widget-wrap,
.dio-hero-pattern .elementor-widget {
  position: relative !important;
  z-index: 2 !important;
}

/* Large centered Coptic cross watermark behind text */
.dio-hero-cross-watermark {
  position: relative;
}
.dio-hero-cross-watermark::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 500px;
  height: 500px;
  background-image: url('/wp-content/uploads/2026/02/coptic-cross-gold.svg');
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  opacity: 0.2;
  z-index: 0;
  pointer-events: none;
}

/* Hero text styling */
.dio-hero-pattern h1,
.dio-hero-pattern .elementor-heading-title {
  color: var(--dio-white) !important;
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.3) !important;
  position: relative;
  z-index: 2;
}

.dio-hero-pattern p,
.dio-hero-pattern .elementor-text-editor,
.dio-hero-pattern .elementor-widget-text-editor {
  color: rgba(255, 255, 255, 0.9) !important;
  position: relative;
  z-index: 2;
}

/* Gold accent line under hero heading */
.dio-hero-gold-accent {
  width: 80px;
  height: 3px;
  background: var(--dio-gold);
  margin: 20px auto;
}

/* Responsive pattern sizing */
@media (max-width: 767px) {
  .dio-hero-pattern {
    min-height: 50vh !important;
  }
  .dio-hero-pattern::before {
    background-size: 140px 140px;
  }
  .dio-hero-cross-watermark::before {
    width: 300px;
    height: 300px;
  }
}


/* ============================================
   PART 22: STATS BAR FIX
   ============================================ */
.dio-stats-bar,
.dio-stats-bar.elementor-section,
section.dio-stats-bar {
  background-color: var(--dio-navy) !important;
}
.dio-stats-bar .elementor-heading-title {
  color: var(--dio-gold) !important;
}

/* ============================================
   PART 23: ANIMATED STATS COUNTERS
   ============================================ */
.dio-stats-counter-row {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}
.dio-stat-item {
  text-align: center;
  min-width: 120px;
}
.dio-counter {
  display: block;
  font-family: 'Playfair Display', serif;
  font-size: 52px;
  font-weight: 700;
  color: var(--dio-gold);
  line-height: 1.2;
}
.dio-counter-suffix {
  font-family: 'Playfair Display', serif;
  font-size: 52px;
  font-weight: 700;
  color: var(--dio-gold);
  line-height: 1.2;
}
.dio-stat-label {
  display: block;
  font-family: 'Montserrat', sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 2px;
  color: rgba(255, 255, 255, 0.85);
  margin-top: 8px;
}
@media (max-width: 767px) {
  .dio-stats-counter-row {
    gap: 30px;
  }
  .dio-stat-item {
    min-width: 100px;
  }
  .dio-counter,
  .dio-counter-suffix {
    font-size: 36px;
  }
  .dio-stat-label {
    font-size: 11px;
  }
}

/* ============================================
   PART 24: STATS DIVIDERS & SPACING
   ============================================ */
.dio-stats-counter-row {
  gap: 0 !important;
  justify-content: center !important;
  padding: 10px 20px !important;
}
.dio-stat-item {
  padding: 0 60px !important;
}
.dio-stat-divider {
  width: 1px;
  height: 60px;
  background: linear-gradient(to bottom, transparent, var(--dio-gold), transparent);
  align-self: center;
  flex-shrink: 0;
}
@media (max-width: 767px) {
  .dio-stat-item {
    padding: 0 25px !important;
  }
  .dio-stat-divider {
    height: 40px;
  }
}

/* ============================================
   PART 25: COUNTER WRAP FIX + BISHOP OVERLAY
   ============================================ */
.dio-counter-wrap {
  display: flex;
  align-items: baseline;
  justify-content: center;
  white-space: nowrap;
}
.dio-counter-wrap .dio-counter {
  display: inline;
}
.dio-counter-wrap .dio-counter-suffix {
  display: inline;
  margin-left: 2px;
}


/* ============================================
   PART 26: FEATURE CARDS WITH ICONS
   ============================================ */
.dio-feature-cards-row {
  display: flex;
  justify-content: center;
  gap: 40px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}
.dio-feature-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1;
  max-width: 360px;
  background: var(--dio-white);
  border: 1px solid var(--dio-border);
  border-radius: 12px;
  padding: 50px 35px 40px;
  text-align: center;
  position: relative;
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  box-shadow: 0 2px 12px rgba(27, 42, 74, 0.06);
}
.dio-feature-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 16px 40px rgba(27, 42, 74, 0.15);
}
.dio-card-gold-bar {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--dio-gold), var(--dio-gold-light), var(--dio-gold));
  transform: scaleX(0);
  transition: transform 0.3s ease;
}
.dio-feature-card:hover .dio-card-gold-bar {
  transform: scaleX(1);
}
.dio-card-icon {
  margin-bottom: 24px;
}
.dio-card-icon svg {
  width: 56px;
  height: 56px;
}
.dio-card-title {
  font-family: "Montserrat", sans-serif !important;
  font-size: 26px !important;
  font-weight: 700 !important;
  color: var(--dio-navy) !important;
  margin-bottom: 16px !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
.dio-card-divider {
  width: 40px;
  height: 2px;
  background: var(--dio-gold);
  margin: 0 auto 20px;
}
.dio-card-desc {
  font-family: "Montserrat", sans-serif !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 1.7 !important;
  color: var(--dio-charcoal) !important;
  margin-bottom: 28px !important;
  flex-grow: 1;
}
.dio-card-btn {
  display: inline-block;
  padding: 12px 28px;
  background: var(--dio-gold);
  color: var(--dio-white) !important;
  font-family: "Montserrat", sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-decoration: none;
  border-radius: 6px;
  transition: background 0.2s ease, transform 0.2s ease;
}
.dio-card-btn:hover {
  background: var(--dio-gold-hover);
  transform: translateY(-2px);
  color: var(--dio-white) !important;
  text-decoration: none;
}

@media (max-width: 767px) {
  .dio-feature-cards-row {
    flex-direction: column;
    align-items: center;
    gap: 30px;
  }
  .dio-feature-card {
    max-width: 400px;
    width: 100%;
  }
}

/* ============================================
   PART 27: SAYINGS OF THE FATHERS - CATEGORIZED
   ============================================ */
.dio-sayings-intro {
  text-align: center;
  margin-bottom: 20px;
}
.dio-sayings-intro p {
  font-family: "Montserrat", sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--dio-gold);
  letter-spacing: 1px;
  text-transform: uppercase;
}
.dio-father-section {
  max-width: 1100px;
  margin: 0 auto 60px;
  padding: 0 20px;
}
.dio-father-header {
  text-align: center;
  margin-bottom: 32px;
  padding-bottom: 24px;
  border-bottom: 2px solid var(--dio-border);
}
.dio-father-name {
  font-family: "Montserrat", sans-serif !important;
  font-size: 30px !important;
  font-weight: 700 !important;
  font-style: normal !important;
  color: var(--dio-navy) !important;
  margin: 0 0 10px !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
.dio-father-desc {
  font-family: "Montserrat", sans-serif;
  font-size: 15px;
  line-height: 1.6;
  color: var(--dio-slate);
  max-width: 650px;
  margin: 0 auto 10px;
}
.dio-father-count {
  display: inline-block;
  background: var(--dio-navy);
  color: var(--dio-gold);
  font-family: "Montserrat", sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 4px 14px;
  border-radius: 20px;
}
/* 3-column grid */
.dio-sayings-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
/* 2-column grid */
.dio-sayings-grid-2 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  max-width: 740px;
  margin: 0 auto;
}
/* Single centered */
.dio-sayings-grid-1 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  max-width: 360px;
  margin: 0 auto;
}
.dio-saying-card {
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 3px 15px rgba(27, 42, 74, 0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  background: var(--dio-white);
  cursor: pointer;
}
.dio-saying-card:hover {
  transform: translateY(-5px) scale(1.02);
  box-shadow: 0 10px 30px rgba(27, 42, 74, 0.16);
}
.dio-saying-card img {
  width: 100%;
  height: auto;
  display: block;
}

@media (max-width: 767px) {
  .dio-sayings-grid-3 {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 600px) {
  .dio-sayings-grid-3,
  .dio-sayings-grid-2 {
    grid-template-columns: 1fr;
    max-width: 400px;
    margin: 0 auto;
  }
  .dio-father-name {
    font-size: 24px !important;
  }
}

/* Hide default WordPress page title on Elementor pages */
.elementor-page .page-header {
  display: none !important;
}

/* ============================================
   PART 28: MESSAGE CARDS - LIFE IN DIOCESE
   ============================================ */
.dio-messages-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  max-width: 1000px;
  margin: 30px auto 0;
}
.dio-message-card {
  display: block;
  background: var(--dio-white);
  border: 1px solid var(--dio-border);
  border-radius: 10px;
  padding: 32px 24px;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  box-shadow: 0 2px 10px rgba(27, 42, 74, 0.06);
}
.dio-message-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--dio-gold), var(--dio-gold-light));
}
.dio-message-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(27, 42, 74, 0.14);
}
.dio-msg-date {
  display: block;
  font-family: 'Montserrat', sans-serif;
  font-size: 12px;
  font-weight: 600;
  color: var(--dio-gold);
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.dio-msg-title {
  display: block;
  font-family: 'Playfair Display', serif;
  font-size: 18px;
  font-weight: 700;
  color: var(--dio-navy);
  line-height: 1.4;
}
.dio-message-card:hover .dio-msg-title {
  color: var(--dio-gold);
}

@media (max-width: 767px) {
  .dio-messages-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 600px) {
  .dio-messages-grid {
    grid-template-columns: 1fr;
    max-width: 400px;
  }
}

/* ===== Part 29: Nav Fixes — Resources Dropdown ===== */
/* Resources parent — href=# so click stays on page, dropdown works on hover */
.menu-item-176 > a {
  cursor: default !important;
}

/* ===== Part 30: Our Faith Page — Image Breaks ===== */
.dio-faith-img-break {
  max-width: 900px;
  margin: 40px auto;
  text-align: center;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(27, 42, 74, 0.10);
}
.dio-faith-img-break img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  max-height: 400px;
}
.dio-faith-img-break .dio-faith-img-caption {
  font-family: 'Montserrat', sans-serif;
  font-size: 13px;
  color: var(--dio-text-light, #666);
  padding: 12px 20px;
  background: var(--dio-cream, #FAF8F5);
  margin: 0;
  font-style: italic;
}

/* ===== Part 31: Church Card Photos ===== */
.dio-church-photo {
  width: 100%;
  height: 180px;
  overflow: hidden;
  border-radius: 12px 12px 0 0;
  margin: -30px -30px 20px -30px;
  width: calc(100% + 60px);
}
.dio-church-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.dio-church-card:has(.dio-church-photo) {
  padding-top: 0;
}

/* ===== Part 32: Clergy Card Avatars ===== */
.dio-clergy-card {
  position: relative;
}
.dio-clergy-avatar {
  width: 150px;
  height: 150px;
  border-radius: 50%;
  background: var(--dio-navy);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
  overflow: hidden;
  box-shadow: 0 4px 15px rgba(27, 42, 74, 0.15);
  border: 3px solid rgba(200, 150, 62, 0.4);
}
.dio-clergy-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.dio-clergy-avatar svg {
  width: 60px;
  height: 60px;
  color: var(--dio-gold);
}

/* ===== Part 33: H3/H4 Differentiation & Polish ===== */
/* H4 as a lighter-weight eyebrow vs H3 */
h4.elementor-heading-title,
.elementor-widget-heading h4 {
  font-size: 12px !important;
  letter-spacing: 3px !important;
  font-weight: 500 !important;
}

/* ===== Part 34: Header Nav & Give Button ===== */
/* Nav flex layout */
header .elementor-nav-menu > ul {
  display: flex !important;
  align-items: center !important;
  gap: 0 !important;
  width: 100% !important;
}
/* Nav link sizing */
header .elementor-nav-menu a.elementor-item {
  font-size: 13px !important;
  padding: 0 12px !important;
}
/* Give button — standalone in header right column */
.elementor-element-dio_give_col {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
}
.elementor-element-dio_give_btn .elementor-button {
  background-color: var(--dio-gold) !important;
  color: var(--dio-navy) !important;
  border-radius: 8px !important;
  padding: 14px 36px !important;
  font-family: "Montserrat", sans-serif !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  transition: background-color 0.3s ease !important;
  border: none !important;
  box-shadow: none !important;
}
.elementor-element-dio_give_btn .elementor-button:hover {
  background-color: var(--dio-gold-light) !important;
  color: var(--dio-navy) !important;
}
.elementor-element-dio_give_btn .elementor-button-text {
  color: var(--dio-navy) !important;
  font-weight: 600 !important;
}

/* ===== Part 35: Footer Text Consistency ===== */
/* Contact info paragraphs (address, phone, email) */
footer.elementor-location-footer p.elementor-heading-title {
  color: rgba(255, 255, 255, 0.85) !important;
  font-family: Montserrat, sans-serif !important;
  font-weight: 400 !important;
  font-size: 14px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  line-height: 1.6 !important;
  margin-bottom: 8px !important;
}
/* Email link styling */
footer.elementor-location-footer a.elementor-heading-title {
  text-transform: none !important;
}
/* Footer text-editor - consistent size */
footer.elementor-location-footer .elementor-text-editor,
footer.elementor-location-footer .elementor-text-editor p {
  font-size: 14px !important;
  line-height: 1.6 !important;
  text-transform: none !important;
}
/* Footer icon list links - consistent size */
footer.elementor-location-footer .elementor-icon-list-text {
  font-size: 14px !important;
}
/* Section headings stay uppercase at smaller size */
footer.elementor-location-footer h2.elementor-heading-title {
  font-size: 14px !important;
  letter-spacing: 2px !important;
  margin-bottom: 20px !important;
}
/* Remove old bottom row styles */
.elementor-element-5b14d0d4 {
  display: none !important;
}

/* Mission section on At a Glance - white text on navy */
.elementor-element-dag_mission h2.elementor-heading-title,
.elementor-element-dag_mission .elementor-heading-title,
.elementor-element-dag_mission .elementor-text-editor,
.elementor-element-dag_mission .elementor-text-editor p {
  color: #FFFFFF !important;
}

/* White headings on dark backgrounds - generic fix */
.elementor-widget.dio-white-heading h2.elementor-heading-title,
.elementor-widget.dio-white-heading .elementor-heading-title,
h2.elementor-heading-title.dio-white-heading,
.dio-white-heading.elementor-heading-title {
  color: #FFFFFF !important;
}


/* Make parent-only dropdown triggers not navigate but still allow hover */
.elementor-nav-menu li.menu-item-has-children > a[href="#"] {
  cursor: default;
}



/* Give page: Tax-Deductible section white heading - override global h2 navy */
.elementor-element-don_tax_sec h2.elementor-heading-title {
  color: #FFFFFF !important;
  font-style: normal !important;
}

/* Fix bare h2/h3 inside text-editor widgets to match heading widget style */
.elementor-widget-text-editor h2,
.elementor-text-editor h2 {
  font-family: "Montserrat", sans-serif !important;
  font-weight: 700 !important;
  font-style: normal !important;
  font-size: 34px !important;
  line-height: 1.25 !important;
  color: var(--dio-navy) !important;
  letter-spacing: -0.3px !important;
}
.elementor-widget-text-editor h3,
.elementor-text-editor h3 {
  font-family: "Montserrat", sans-serif !important;
  font-weight: 700 !important;
  font-style: normal !important;
  font-size: 24px !important;
  line-height: 1.3 !important;
  color: var(--dio-navy) !important;
}

/* Deacon subheading within state sections */
.dio-deacon-subheading {
  font-family: 'Montserrat', sans-serif;
  font-size: 20px;
  font-weight: 600;
  color: var(--dio-navy);
  margin: 10px 0 20px;
  padding-top: 10px;
  border-top: 2px solid var(--dio-border);
}

/* Deacon row - compact cards below priest grid within each state */

/* Deacon compact cards within state sections */
.elementor-widget-text-editor .dio-deacon-row {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)) !important;
  gap: 16px !important;
  margin: 0 0 40px !important;
}

.elementor-widget-text-editor .dio-deacon-inline {
  background: #FFFFFF !important;
  border: 1px solid #E8E4DF !important;
  border-radius: 10px !important;
  padding: 20px 22px !important;
  box-shadow: 0 1px 6px rgba(27,42,74,0.08) !important;
  transition: box-shadow 0.2s ease, transform 0.2s ease !important;
}

.elementor-widget-text-editor .dio-deacon-inline:hover {
  box-shadow: 0 4px 16px rgba(27,42,74,0.15) !important;
  transform: translateY(-2px) !important;
}

.elementor-widget-text-editor .dio-deacon-inline h4 {
  font-family: 'Playfair Display', serif !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  color: #1B2A4A !important;
  margin: 0 0 6px !important;
  line-height: 1.3 !important;
}

.elementor-widget-text-editor .dio-deacon-inline .dio-church-name {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 13px !important;
  color: #5A6577 !important;
  margin: 0 0 4px !important;
}

.elementor-widget-text-editor .dio-deacon-inline .dio-meta {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 12px !important;
  color: #5A6577 !important;
  margin: 0 !important;
}

@media (max-width: 767px) {
  .elementor-widget-text-editor .dio-deacon-row {
    grid-template-columns: 1fr !important;
  }
}

/* ==========================================================================
   MOBILE NAVIGATION - Dropdown Panel
   ========================================================================== */
@media (max-width: 1024px) {
  nav.elementor-nav-menu--dropdown.elementor-nav-menu__container {
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    height: auto !important;
    background: linear-gradient(170deg, #1B2A4A 0%, #111D35 100%) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-items: center !important;
    z-index: 99999 !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow-y: auto !important;
  }
  nav.elementor-nav-menu--dropdown[aria-hidden="true"] {
    display: none !important;
  }
  nav.elementor-nav-menu--dropdown ul.elementor-nav-menu {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
    width: 100% !important;
    max-width: 400px !important;
  }
  nav.elementor-nav-menu--dropdown li.menu-item {
    width: 100% !important;
    text-align: center !important;
    border-bottom: 1px solid rgba(200, 150, 62, 0.12) !important;
    border-top: none !important;
  }
  nav.elementor-nav-menu--dropdown li.menu-item:last-child {
    border-bottom: none !important;
  }
  nav.elementor-nav-menu--dropdown a.elementor-item,
  nav.elementor-nav-menu--dropdown a.elementor-sub-item {
    font-family: "Montserrat", sans-serif !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    color: rgba(255, 255, 255, 0.85) !important;
    padding: 18px 24px !important;
    display: block !important;
    text-decoration: none !important;
    transition: color 0.2s ease, background 0.2s ease !important;
  }
  nav.elementor-nav-menu--dropdown a.elementor-item:hover,
  nav.elementor-nav-menu--dropdown a.elementor-sub-item:hover {
    color: #E2B968 !important;
    background: rgba(200, 150, 62, 0.08) !important;
  }
  nav.elementor-nav-menu--dropdown .current-menu-item > a,
  nav.elementor-nav-menu--dropdown .current_page_item > a {
    color: #E2B968 !important;
  }
  nav.elementor-nav-menu--dropdown ul.sub-menu {
    background: rgba(0, 0, 0, 0.15) !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    position: static !important;
    width: 100% !important;
    padding: 0 !important;
  }
  nav.elementor-nav-menu--dropdown ul.sub-menu a {
    font-size: 13px !important;
    font-weight: 500 !important;
    letter-spacing: 1.5px !important;
    color: rgba(255, 255, 255, 0.6) !important;
    padding: 14px 24px !important;
  }
  nav.elementor-nav-menu--dropdown ul.sub-menu a:hover {
    color: #E2B968 !important;
  }
  nav.elementor-nav-menu--dropdown .sub-arrow svg,
  nav.elementor-nav-menu--dropdown .e-font-icon-svg {
    fill: rgba(200, 150, 62, 0.5) !important;
  }
  .elementor-menu-toggle {
    position: relative !important;
    z-index: 100000 !important;
  }
  nav.elementor-nav-menu--dropdown li.menu-item::before,
  nav.elementor-nav-menu--dropdown li.menu-item::after {
    display: none !important;
  }
}

/* Hide Give button, keep column for spacing */
.elementor-element-dio_give_btn {
  visibility: hidden !important;
}

/* ==========================================================================
   MOBILE FOOTER - Clean stacked layout
   ========================================================================== */
@media (max-width: 767px) {
  .elementor-20 .elementor-element.elementor-element-ft_col_diocese,
  .elementor-20 .elementor-element.elementor-element-ft_col_connect,
  .elementor-20 .elementor-element.elementor-element-ft_col_resources,
  .elementor-20 .elementor-element.elementor-element-ft_col_logo {
    width: 100% !important;
  }
  .elementor-20 .elementor-element-ft_inner .elementor-column .elementor-widget-wrap {
    text-align: center !important;
    align-items: center !important;
  }
  footer.elementor-location-footer h2.elementor-heading-title {
    text-align: center !important;
  }
  footer.elementor-location-footer .elementor-icon-list-items {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
  }
  .elementor-20 .elementor-element.elementor-element-ft_col_connect > .elementor-element-populated,
  .elementor-20 .elementor-element.elementor-element-ft_col_resources > .elementor-element-populated {
    margin-top: 32px !important;
  }
  .elementor-20 .elementor-element.elementor-element-ft_col_logo > .elementor-element-populated {
    margin-top: 36px !important;
    text-align: center !important;
  }
  .elementor-20 .elementor-element.elementor-element-ft_logo {
    text-align: center !important;
  }
  .elementor-20 .elementor-element.elementor-element-ft_diocese_name,
  .elementor-20 .elementor-element.elementor-element-ft_legal {
    text-align: center !important;
  }

}

/* ==========================================================================
   SUBSCRIBE FORM
   ========================================================================== */
.dio-subscribe-wrap {
  background: linear-gradient(135deg, #1B2A4A 0%, #111D35 100%);
  padding: 0 20px;
  border-top: 1px solid rgba(200, 150, 62, 0.15);
  margin-top: 40px;
}
.dio-sub-inner {
  max-width: 600px;
  margin: 0 auto;
  padding: 52px 0 44px;
  text-align: center;
}
.dio-sub-heading {
  font-family: "Montserrat", sans-serif !important;
  font-size: 28px !important;
  font-weight: 700 !important;
  font-style: normal !important;
  color: #FFFFFF !important;
  margin: 0 0 10px !important;
  letter-spacing: -0.3px !important;
  text-transform: none !important;
  line-height: 1.3 !important;
  text-align: center !important;
}
.dio-sub-text {
  font-family: "Montserrat", sans-serif !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  color: rgba(255, 255, 255, 0.6) !important;
  margin: 0 0 30px !important;
  line-height: 1.7 !important;
  text-align: center !important;
}
.dio-sub-fields {
  display: flex;
  flex-direction: row;
  max-width: 500px;
  margin: 0 auto;
  border-radius: 8px;
  overflow: hidden;
  border: 2px solid rgba(200, 150, 62, 0.35);
}
.dio-sub-input {
  font-family: "Montserrat", sans-serif !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  padding: 16px 20px !important;
  border: none !important;
  border-radius: 0 !important;
  background: rgba(255, 255, 255, 0.06) !important;
  color: #fff !important;
  outline: none !important;
  box-shadow: none !important;
  flex: 1;
  min-width: 0;
  margin: 0 !important;
}
.dio-sub-input::placeholder {
  color: rgba(255, 255, 255, 0.4);
}
.dio-sub-btn {
  font-family: "Montserrat", sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  padding: 16px 30px !important;
  background: #C8963E !important;
  color: #fff !important;
  border: none !important;
  border-radius: 0 !important;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  margin: 0 !important;
}
.dio-sub-btn:hover {
  background: #D4A44E !important;
}
.dio-sub-message {
  margin-top: 16px;
  padding: 12px 20px;
  border-radius: 8px;
  font-family: "Montserrat", sans-serif;
  font-size: 14px;
  font-weight: 500;
  text-align: center;
}
@media (max-width: 600px) {
  .dio-sub-fields {
    flex-direction: column !important;
  }
}

/* ==========================================================================
   CHURCH CARD IMAGES - Uniform banner at top of card
   ========================================================================== */
.dio-church-card {
  padding: 0 !important;
  overflow: hidden !important;
}
.dio-church-img {
  width: 100%;
  height: 200px;
  overflow: hidden;
  border-radius: 12px 12px 0 0;
}
.dio-church-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.dio-church-img--placeholder {
  background: #F5F2ED;
  display: flex;
  align-items: center;
  justify-content: center;
}
.dio-card-body {
  padding: 24px !important;
}

/* Church card grid layout */
.dio-church-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 24px !important;
}
@media (max-width: 1024px) {
  .dio-church-grid {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}
@media (max-width: 767px) {
  .dio-church-grid {
    grid-template-columns: 1fr !important;
  }
}









/* Social icons - no visual change on hover */
.dio-church-card .dio-links a:hover {
  background-color: #FAF8F5 !important;
  color: #1B2A4A !important;
  border-color: #E8E4DF !important;
  box-shadow: none !important;
  cursor: pointer;
}

/* Clergy card photos */
.dio-clergy-avatar {
  width: 150px !important;
  height: 150px !important;
  border-radius: 50% !important;
  overflow: hidden !important;
  margin: 0 auto 20px !important;
  border: 3px solid rgba(200, 150, 62, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  background: #FAF8F5;
}
.dio-clergy-avatar img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 50% !important;
  display: block !important;
}

/* ===== CARD STYLE OVERRIDES - CONSISTENT DESIGN ===== */
.dio-church-card,
.dio-clergy-card,
.dio-deacon-card {
  border: 1px solid #ddd !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06) !important;
  border-radius: 12px !important;
  transition: box-shadow 0.2s ease, border-color 0.2s ease !important;
}
.dio-church-card:hover,
.dio-clergy-card:hover,
.dio-deacon-card:hover {
  box-shadow: 0 6px 20px rgba(0,0,0,0.12) !important;
  border-color: #bbb !important;
}
.dio-church-card::before,
.dio-clergy-card::before {
  display: none !important;
}

/* Clergy contact links - match parish social style */
.dio-clergy-card .dio-contact-links {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin-top: 14px !important;
  padding-top: 14px !important;
  border-top: 1px solid #eee !important;
}
.dio-clergy-card .dio-contact-links a {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-family: Montserrat, sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: var(--dio-gold) !important;
  text-decoration: none !important;
  padding: 6px 12px !important;
  border: 1px solid #ddd !important;
  border-radius: 6px !important;
  background: #fafafa !important;
  transition: background-color 0.2s ease, border-color 0.2s ease !important;
}
.dio-clergy-card .dio-contact-links a:hover {
  background-color: #f0f0f0 !important;
  border-color: #bbb !important;
  color: var(--dio-gold) !important;
}
.dio-clergy-card .dio-contact-links a svg {
  color: var(--dio-gold) !important;
}

/* Parish social links - same clean style */
.dio-church-card .dio-links a {
  color: var(--dio-gold) !important;
  border: 1px solid #ddd !important;
  border-radius: 6px !important;
  background: #fafafa !important;
}
.dio-church-card .dio-links a:hover {
  background-color: #f0f0f0 !important;
  border-color: #bbb !important;
  color: var(--dio-gold) !important;
}

/* Nav menu spacing - fit all items on one line */
header .elementor-nav-menu--main > .elementor-nav-menu > li {
  padding: 0 8px !important;
}
header .elementor-nav-menu--layout-horizontal > .elementor-nav-menu {
  gap: 0 !important;
}

/* Wider header nav - use full width */
header.elementor-location-header .elementor-section .elementor-container {
  max-width: 100% !important;
  padding: 0 30px !important;
}
header.elementor-location-header .elementor-section-boxed > .elementor-container {
  max-width: 100% !important;
}

/* Shrink logo column, expand nav column */
header.elementor-location-header .elementor-col-15 {
  width: 8% !important;
  min-width: 60px !important;
}
header.elementor-location-header .elementor-col-85 {
  width: 92% !important;
}
/* Push nav items closer together */
header .elementor-nav-menu a.elementor-item {
  padding-left: 10px !important;
  padding-right: 10px !important;
}

/* Align helpful links card buttons to bottom */
.dio-feature-card {
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  min-height: 180px !important;
}
.dio-feature-card .dio-card-btn {
  margin-top: auto !important;
}

/* CCFA download cards - align buttons to bottom */
.elementor-element-ccfa_forms_html div[style*='flex:1'] {
  display: flex !important;
  flex-direction: column !important;
}
.elementor-element-ccfa_forms_html div[style*='flex:1'] a[style*='background:#C8963E'] {
  margin-top: auto !important;
}


/* ----- Diocese Prayer Requests form (added 2026-05-03) ----- */
.dio-prayer-wrap {
  max-width: 720px;
  margin: 0 auto;
  padding: 0 20px;
}
.dio-pr-inner {
  background: #FFFFFF;
  border: 1px solid #EDE3D2;
  border-radius: 14px;
  padding: 40px 36px;
  box-shadow: 0 18px 44px -28px rgba(27, 42, 74, 0.25);
}
.dio-pr-content { text-align: center; margin-bottom: 24px; }
.dio-pr-heading {
  font-family: "Montserrat", sans-serif !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  color: #1B2A4A !important;
  margin: 0 0 8px !important;
}
.dio-pr-text {
  font-family: "Montserrat", sans-serif !important;
  font-size: 15px !important;
  color: #5A5A5A !important;
  margin: 0 0 8px !important;
  line-height: 1.6 !important;
}
.dio-pr-form { display: block; }
.dio-pr-row { margin: 0 0 14px; }
.dio-pr-row-double { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.dio-pr-input {
  width: 100% !important;
  font-family: "Montserrat", sans-serif !important;
  font-size: 15px !important;
  color: #1B2A4A !important;
  background: #FAF8F5 !important;
  border: 1px solid #E5DCC9 !important;
  border-radius: 8px !important;
  padding: 13px 16px !important;
  box-sizing: border-box !important;
  transition: border-color .2s, background .2s !important;
  outline: none !important;
}
.dio-pr-input:focus {
  border-color: #C8963E !important;
  background: #FFFFFF !important;
}
.dio-pr-input::placeholder { color: #998C73 !important; }
.dio-pr-intention { resize: vertical; min-height: 130px; }
.dio-pr-actions { text-align: center; margin-top: 6px; }
.dio-pr-btn {
  font-family: "Montserrat", sans-serif !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #FFFFFF !important;
  background: #C8963E !important;
  border: 0 !important;
  border-radius: 8px !important;
  padding: 14px 36px !important;
  cursor: pointer !important;
  letter-spacing: .3px !important;
  display: inline-flex; align-items: center; justify-content: center;
  transition: background .2s ease;
  min-width: 220px;
}
.dio-pr-btn:hover { background: #E2B968 !important; }
.dio-pr-btn[disabled] { opacity: .7; cursor: default; }
.dio-pr-message {
  margin-top: 16px;
  padding: 12px 14px;
  border-radius: 8px;
  font-size: 14px;
  font-family: "Montserrat", sans-serif;
  text-align: center;
}
.dio-pr-success { background: #EAF7EE; color: #1F6D3A; border: 1px solid #B6E2C2; }
.dio-pr-error { background: #FBEAEA; color: #962020; border: 1px solid #ECC0C0; }
@media (max-width: 600px) {
  .dio-pr-inner { padding: 28px 20px; }
  .dio-pr-row-double { grid-template-columns: 1fr; }
}


/* ----- Diocese Parish Map (added 2026-05-03) ----- */
.dio-parish-map-wrap {
  max-width: 1200px;
  margin: 0 auto 32px;
  padding: 0 20px;
}
.dio-parish-map {
  height: 520px;
  width: 100%;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid #E5DCC9;
  box-shadow: 0 18px 44px -28px rgba(27, 42, 74, 0.25);
  background: #FAF8F5;
  z-index: 0;
}
.dio-map-hint {
  font-family: "Montserrat", sans-serif;
  font-size: 13px;
  color: #998C73;
  text-align: center;
  margin: 12px 0 0;
}
.dio-parish-pin {
  background: transparent !important;
  border: 0 !important;
  filter: drop-shadow(0 4px 6px rgba(27, 42, 74, 0.28));
}
.leaflet-popup-content-wrapper {
  border-radius: 10px !important;
  box-shadow: 0 12px 32px -12px rgba(27, 42, 74, 0.35) !important;
  padding: 0 !important;
}
.leaflet-popup-content {
  margin: 0 !important;
  font-family: "Montserrat", sans-serif !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
}
.dio-pop {
  padding: 14px 16px 12px;
}
.dio-pop-name {
  font-weight: 700;
  font-size: 15px;
  color: #1B2A4A;
  margin-bottom: 2px;
}
.dio-pop-city {
  font-size: 12px;
  color: #C8963E;
  font-weight: 600;
  letter-spacing: .3px;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.dio-pop-addr {
  font-size: 13px;
  color: #2D2D2D;
  margin-bottom: 12px;
  line-height: 1.45;
}
.dio-pop-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.dio-pop-link {
  display: inline-block;
  font-size: 12px;
  font-weight: 600;
  padding: 7px 12px;
  border-radius: 6px;
  text-decoration: none !important;
  background: #FAF8F5;
  color: #1B2A4A !important;
  border: 1px solid #E8E4DF;
  transition: all .2s ease;
}
.dio-pop-link:hover {
  background: #FFFFFF;
  border-color: #C8963E;
}
.dio-pop-primary {
  background: #C8963E;
  color: #FFFFFF !important;
  border-color: #C8963E;
}
.dio-pop-primary:hover {
  background: #E2B968;
  border-color: #E2B968;
}
@media (max-width: 768px) {
  .dio-parish-map-wrap { padding: 0 12px; }
  .dio-parish-map { height: 380px; border-radius: 10px; }
  .dio-pop-name { font-size: 14px; }
  .dio-pop-addr { font-size: 12px; }
}
@media (max-width: 480px) {
  .dio-parish-map { height: 340px; }
}


/* ================================================================
   Header layout fix — 2026-05-03 v3
   - Reclaim the empty right column so nav has the room to fit all 7 items
   - Force single-line nav at all desktop widths
   - Center logo on mobile when burger replaces the nav
   ================================================================ */

@media (min-width: 1025px) {
  header.elementor-location-header .elementor-element-649c6e6e {
    width: 6% !important;
    min-width: 56px !important;
    max-width: 80px !important;
  }
  header.elementor-location-header .elementor-element-3a2a38af {
    width: 88% !important;
    flex-grow: 1 !important;
  }
  header.elementor-location-header .elementor-element-dio_give_col {
    width: 6% !important;
    min-width: 0 !important;
    max-width: 60px !important;
  }
  header .elementor-nav-menu > ul {
    flex-wrap: nowrap !important;
    justify-content: center !important;
    width: 100% !important;
  }
  header .elementor-nav-menu--main > .elementor-nav-menu > li {
    flex-shrink: 1 !important;
    min-width: 0 !important;
  }
  header .elementor-nav-menu a.elementor-item {
    white-space: nowrap !important;
  }
}

@media (min-width: 1025px) and (max-width: 1599px) {
  /* Tighten padding only — font stays at desktop baseline. */
  header .elementor-nav-menu a.elementor-item {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
  header .elementor-nav-menu--main > .elementor-nav-menu > li {
    padding: 0 4px !important;
  }
}

@media (min-width: 1025px) and (max-width: 1366px) {
  header .elementor-nav-menu a.elementor-item {
    padding-left: 5px !important;
    padding-right: 5px !important;
  }
  header .elementor-nav-menu--main > .elementor-nav-menu > li {
    padding: 0 2px !important;
  }
}

@media (max-width: 1024px) {
  header.elementor-location-header .elementor-section .elementor-container {
    position: relative !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
  }
  header.elementor-location-header .elementor-element-649c6e6e {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    text-align: center !important;
    display: flex !important;
    justify-content: center !important;
  }
  header.elementor-location-header .elementor-element-649c6e6e .elementor-widget-wrap {
    justify-content: center !important;
    align-items: center !important;
  }
  header.elementor-location-header .elementor-element-649c6e6e img {
    margin: 0 auto !important;
  }
  header.elementor-location-header .elementor-element-3a2a38af {
    position: absolute !important;
    right: 16px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: auto !important;
    z-index: 10 !important;
  }
  header.elementor-location-header .elementor-element-dio_give_col {
    display: none !important;
  }
}


/* ================================================================
   Header mobile fix — 2026-05-03 v4
   Stack: centered logo on top, burger button centered below.
   Replaces the v3 absolutely-positioned burger.
   ================================================================ */

@media (max-width: 1024px) {
  /* Force the section's container to stack its three columns vertically */
  header.elementor-location-header .elementor-section .elementor-container {
    position: static !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 8px !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }
  /* Logo column: full row, centered */
  header.elementor-location-header .elementor-element-649c6e6e {
    position: static !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    display: flex !important;
    justify-content: center !important;
    transform: none !important;
  }
  header.elementor-location-header .elementor-element-649c6e6e .elementor-widget-wrap {
    justify-content: center !important;
    align-items: center !important;
  }
  header.elementor-location-header .elementor-element-649c6e6e img {
    margin: 0 auto !important;
  }
  /* Burger column: centered below the logo, no absolute positioning */
  header.elementor-location-header .elementor-element-3a2a38af {
    position: static !important;
    width: 100% !important;
    transform: none !important;
    display: flex !important;
    justify-content: center !important;
    top: auto !important;
    right: auto !important;
  }
  header.elementor-location-header .elementor-element-3a2a38af .elementor-widget-wrap {
    justify-content: center !important;
    align-items: center !important;
  }
  /* Empty Give column stays hidden */
  header.elementor-location-header .elementor-element-dio_give_col {
    display: none !important;
  }
}


/* ================================================================
   Header mobile dropdown — keep menu-item text readable across ALL states
   (added 2026-05-03 v5)

   Symptom: on touch, expanding "The Diocese" then "Resources" leaves the
   first parent in a sticky/active visual state where text and background
   collide and the label becomes unreadable. Explicitly pin color + bg for
   focus / focus-within / active / highlighted / aria-expanded so no fallback
   path can produce white-on-white.
   ================================================================ */

@media (max-width: 1024px) {
  nav.elementor-nav-menu--dropdown a.elementor-item,
  nav.elementor-nav-menu--dropdown a.elementor-sub-item,
  nav.elementor-nav-menu--dropdown a.elementor-item:focus,
  nav.elementor-nav-menu--dropdown a.elementor-item:focus-within,
  nav.elementor-nav-menu--dropdown a.elementor-item:active,
  nav.elementor-nav-menu--dropdown a.elementor-item:visited,
  nav.elementor-nav-menu--dropdown a.elementor-sub-item:focus,
  nav.elementor-nav-menu--dropdown a.elementor-sub-item:focus-within,
  nav.elementor-nav-menu--dropdown a.elementor-sub-item:active,
  nav.elementor-nav-menu--dropdown a.elementor-sub-item:visited,
  nav.elementor-nav-menu--dropdown li.menu-item-has-children > a,
  nav.elementor-nav-menu--dropdown li.menu-item-has-children > a:focus,
  nav.elementor-nav-menu--dropdown li.menu-item-has-children > a:focus-within,
  nav.elementor-nav-menu--dropdown li.menu-item-has-children > a:active,
  nav.elementor-nav-menu--dropdown li.menu-item-has-children > a:visited,
  nav.elementor-nav-menu--dropdown li.menu-item-has-children > a[aria-expanded="true"],
  nav.elementor-nav-menu--dropdown li.menu-item.highlighted > a,
  nav.elementor-nav-menu--dropdown li.elementor-item-active > a,
  nav.elementor-nav-menu--dropdown a.elementor-item.highlighted,
  nav.elementor-nav-menu--dropdown a.elementor-item.elementor-item-active {
    color: rgba(255, 255, 255, 0.85) !important;
    background-color: transparent !important;
  }

  /* Hover stays gold-on-faint-gold */
  nav.elementor-nav-menu--dropdown a.elementor-item:hover,
  nav.elementor-nav-menu--dropdown a.elementor-sub-item:hover,
  nav.elementor-nav-menu--dropdown li.menu-item-has-children > a:hover {
    color: #E2B968 !important;
    background-color: rgba(200, 150, 62, 0.08) !important;
  }

  /* Caret SVG follows the link color so it never disappears against bg */
  nav.elementor-nav-menu--dropdown li.menu-item-has-children > a .sub-arrow svg,
  nav.elementor-nav-menu--dropdown li.menu-item-has-children > a[aria-expanded="true"] .sub-arrow svg {
    fill: currentColor !important;
  }
}

/* ================================================================
   PART 27: PREMIUM HERO CONTENT (2026-07-04, theme v1.5.0)
   Markup lives in the hero HTML widget on the homepage
   (Elementor page 51, widget dio_hero_html). Structure:
   eyebrow → h1 → gold rule with cross → subline → CTA row.
   ================================================================ */

.dio-hero-content {
  text-align: center;
  padding: 0 24px;
  max-width: 1030px;
  margin: 0 auto;
}

.dio-hero-eyebrow {
  font-family: 'Montserrat', sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 5px;
  text-transform: uppercase;
  color: #E2B968;
  margin-bottom: 26px;
}

.dio-hero-content h1 {
  font-family: 'Playfair Display', serif;
  font-size: clamp(30px, 4.2vw, 44px);
  font-weight: 700;
  line-height: 1.24;
  color: #FFFFFF;
  margin: 0 0 6px;
  text-shadow: 0 2px 24px rgba(10, 18, 36, 0.55);
}

/* forced break gives two clean lines on desktop; let mobile wrap naturally */
@media (max-width: 899px) {
  .dio-hero-br { display: none; }
}

/* thin gold rule with a Coptic cross at its center */
.dio-hero-rule {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  margin: 34px auto 30px;
}
.dio-hero-rule::before,
.dio-hero-rule::after {
  content: '';
  display: block;
  width: 90px;
  height: 2px;
  background: linear-gradient(90deg, transparent, #DBA860);
}
.dio-hero-rule::after {
  background: linear-gradient(90deg, #DBA860, transparent);
}
.dio-hero-rule span {
  color: #E2B968;
  font-size: 24px;
  line-height: 1;
  text-shadow: 0 0 14px rgba(226, 185, 104, 0.5);
}

.dio-hero-content .dio-hero-sub {
  font-family: 'Montserrat', sans-serif;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.8;
  color: rgba(255, 255, 255, 0.88);
  max-width: 660px;
  margin: 0 auto 44px !important;
}

.dio-hero-cta {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}

.dio-btn {
  display: inline-block;
  font-family: 'Montserrat', sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  padding: 17px 38px;
  border-radius: 2px;
  text-decoration: none !important;
  transition: all 0.3s ease;
}

.dio-btn-gold {
  background: linear-gradient(135deg, #DBA860 0%, #C8963E 100%);
  color: #1B2A4A !important;
  box-shadow: 0 4px 18px rgba(200, 150, 62, 0.35);
}
.dio-btn-gold:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 26px rgba(200, 150, 62, 0.5);
  color: #1B2A4A !important;
}

.dio-btn-ghost {
  background: transparent;
  color: #FFFFFF !important;
  border: 1px solid rgba(255, 255, 255, 0.55);
}
.dio-btn-ghost:hover {
  border-color: #E2B968;
  color: #E2B968 !important;
  background: rgba(200, 150, 62, 0.08);
}

@media (max-width: 767px) {
  .dio-hero-eyebrow { font-size: 11px; letter-spacing: 4px; margin-bottom: 20px; }
  .dio-hero-content .dio-hero-sub { font-size: 15px; margin-bottom: 34px !important; }
  .dio-hero-cta { flex-direction: column; gap: 14px; }
  .dio-btn { width: 100%; max-width: 320px; text-align: center; padding: 15px 30px; }
}

/* ================================================================
   PART 28: SITE-WIDE PREMIUM POLISH (2026-07-04, theme v1.5.0)
   Small refinements only; no structural changes.
   ================================================================ */

/* Desktop nav links: smooth gold underline on hover */
nav.elementor-nav-menu--main a.elementor-item {
  position: relative;
  transition: color 0.25s ease;
}
nav.elementor-nav-menu--main a.elementor-item::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 4px;
  transform: translateX(-50%);
  width: 0;
  height: 1px;
  background: #E2B968;
  transition: width 0.25s ease;
}
nav.elementor-nav-menu--main a.elementor-item:hover::after,
nav.elementor-nav-menu--main a.elementor-item.elementor-item-active::after {
  width: calc(100% - 24px);
}

/* Elementor buttons: consistent lift on hover */
.elementor-button {
  transition: all 0.3s ease !important;
}
.elementor-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(27, 42, 74, 0.18);
}
