:root{
  --navy:#0f1b3d;
  --navy-dark:#0a1330;
  --blue:#2f6fed;
  --blue-light:#5b8df0;
  --pink:#e0447e;
  --ink:#1c2333;
  --muted:#5b6478;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{
  font-family:'Inter', system-ui, sans-serif;
  color:var(--ink);
  background:#fff;
}
a{text-decoration:none;color:inherit;}
ul{list-style:none;}
.hidden{display:none !important;}

/* ===== GLOBAL FORM CONTROLS (select/textarea/text inputs, site-wide) ===== */
select, textarea,
input[type="text"], input[type="email"], input[type="tel"], input[type="number"],
input[type="password"], input[type="date"], input[type="time"], input[type="url"],
input[type="search"], input:not([type]) {
  font-family:inherit;font-size:0.92rem;color:var(--navy);
  background:#fff;border:1.5px solid #dde3f2;border-radius:10px;
  padding:0.65rem 0.9rem;transition:border-color 0.18s ease, box-shadow 0.18s ease;
  outline:none;width:100%;
}
select{
  appearance:none;-webkit-appearance:none;-moz-appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235b6478' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat:no-repeat;background-position:right 0.85rem center;padding-right:2.2rem;cursor:pointer;
}
textarea{resize:vertical;min-height:4.5rem;line-height:1.5;}
select:hover, textarea:hover, input:hover{border-color:#c3ccdf;}
select:focus, textarea:focus, input:focus{
  border-color:var(--blue);box-shadow:0 0 0 3px rgba(47,111,237,0.14);
}
select:disabled, textarea:disabled, input:disabled{background:#f4f6fb;color:#9aa2b5;cursor:not-allowed;}

/* ===== GLOBAL BUTTON/LINK ANIMATION (site-wide) ===== */
button, .action-btn, .wizard-btn, .service-card, a[class], input[type="submit"],
.pill-item, .time-slot, .donation-view-tab, .lg-tab, .swap-mode-option,
nav.main-nav a, .chapel-slide, .donation-generate-qr-btn {
  transition: transform 0.16s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.2s ease, background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
}
button:not(:disabled):hover, .action-btn:not(:disabled):hover, .wizard-btn:not(:disabled):hover,
.pill-item:hover, .time-slot:not(.taken):hover, .donation-view-tab:hover, .lg-tab:hover, .swap-mode-option:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(15,27,61,0.12);
}
button:not(:disabled):active, .action-btn:not(:disabled):active, .wizard-btn:not(:disabled):active,
.pill-item:active, .time-slot:not(.taken):active {
  transform: translateY(0) scale(0.97);
  box-shadow: none;
}
button:disabled, .action-btn:disabled, .wizard-btn:disabled { transform:none; box-shadow:none; }

/* Generic small spinner used inline in buttons while an action is in flight */
.spinner-dot, .btn-spinner{
  display:inline-block;width:14px;height:14px;border-radius:50%;
  border:2px solid rgba(255,255,255,0.4);border-top-color:#fff;
  animation:olhrp-spin 0.7s linear infinite;vertical-align:middle;
}
.btn-spinner.dark{border-color:rgba(15,27,61,0.25);border-top-color:var(--navy);}
@keyframes olhrp-spin{to{transform:rotate(360deg);}}

/* Fade+rise entrance used for cards/sections as they render */
@keyframes olhrp-fade-up{
  from{opacity:0;transform:translateY(10px);}
  to{opacity:1;transform:translateY(0);}
}
.service-card, .ministry-card, .announcement-card, .chapel-slide, .request-card{
  animation: olhrp-fade-up 0.4s ease both;
}

/* Skeleton loading shimmer (used by "Loading..." placeholders) */
.skeleton-shimmer{
  background:linear-gradient(90deg, #eef1f8 25%, #f7f9fd 37%, #eef1f8 63%);
  background-size:400% 100%;
  animation:olhrp-shimmer 1.4s ease infinite;
  border-radius:8px;
}
@keyframes olhrp-shimmer{
  0%{background-position:100% 50%;}
  100%{background-position:0 50%;}
}

/* ===== TOP UTILITY BAR ===== */
.topbar{
  background:var(--navy);
  color:#cfd8f5;
  font-size:0.78rem;
  letter-spacing:0.4px;
  padding:0.55rem 2rem;
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:0.5rem;
}
.topbar .left,.topbar .right{
  display:flex;
  align-items:center;
  gap:1.5rem;
  flex-wrap:wrap;
}
.topbar .left span,.topbar .right a{
  display:flex;
  align-items:center;
  gap:0.4rem;
  font-weight:600;
  text-transform:uppercase;
  color:#dbe3fb;
}
.topbar .right a:hover{color:#fff;}
.topbar svg{width:14px;height:14px;flex-shrink:0;}
.topbar-social{display:flex;align-items:center;gap:0.7rem;padding-right:0.5rem;margin-right:0.3rem;border-right:1px solid rgba(255,255,255,0.2);}
.topbar-social a{color:#cfd8f5;display:flex;align-items:center;transition:color 0.15s ease,transform 0.15s ease;}
.topbar-social a:hover{color:#fff;transform:translateY(-1px);}
@media (max-width:700px){.topbar-social{border-right:none;padding-right:0;margin-right:0;}}

/* ===== HEADER / NAV ===== */
header.main-header{
  background:#fff;
  padding:0.9rem 2rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  box-shadow:0 1px 0 rgba(0,0,0,0.06);
  position:sticky;
  top:0;
  z-index:50;
  flex-wrap:wrap;
  gap:1rem;
}
.brand{
  display:flex;
  align-items:center;
  gap:0.75rem;
}
.brand .logo{
  width:44px;
  height:44px;
  border-radius:50%;
  background:#fff;
  border:1px solid #e7ecf9;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  overflow:hidden;
}
.brand .logo svg{width:22px;height:22px;fill:var(--blue);}
.brand .logo img{width:100%;height:100%;object-fit:contain;}
.footer-brand .logo{
  width:44px;
  height:44px;
  border-radius:50%;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  overflow:hidden;
}
.footer-brand .logo svg{width:22px;height:22px;fill:var(--blue);}
.footer-brand .logo img{width:100%;height:100%;object-fit:contain;}
.brand .titles h1{
  font-family:'Playfair Display',serif;
  font-size:1.15rem;
  font-weight:700;
  color:var(--navy);
  line-height:1.1;
}
.brand .titles p{
  font-size:0.7rem;
  font-weight:700;
  letter-spacing:0.5px;
  color:var(--blue);
  text-transform:uppercase;
  margin-top:2px;
}
nav.main-nav ul{
  display:flex;
  align-items:center;
  gap:0.4rem;
}
nav.main-nav a{
  display:inline-block;
  padding:0.5rem 1.1rem;
  border-radius:30px;
  font-weight:600;
  font-size:0.92rem;
  color:var(--ink);
  transition:0.2s;
}
nav.main-nav a:hover{background:#eef2fd;}
@media (max-width:1360px){
  nav.main-nav ul{gap:0.1rem;}
  nav.main-nav a{padding:0.5rem 0.75rem;font-size:0.85rem;}
}
nav.main-nav a.active{
  background:#eaf1ff;
  color:var(--blue);
}
.nav-donate-link{
  display:inline-flex !important;align-items:center;gap:0.4rem;
  background:linear-gradient(135deg, var(--pink), #ff6f91) !important;
  color:#fff !important;box-shadow:0 4px 14px rgba(224,68,126,0.35);
}
.nav-donate-link:hover{background:linear-gradient(135deg, #c8386c, #e0447e) !important;transform:translateY(-1px);}
.nav-donate-link svg{flex-shrink:0;}

/* ===== Quick Donate Modal ===== */
.quick-donate-modal-box{max-width:420px;text-align:center;padding:2.5rem 2.2rem;}
.quick-donate-icon{
  width:56px;height:56px;margin:0 auto 1rem;border-radius:50%;background:#fdeef3;color:var(--pink);
  display:flex;align-items:center;justify-content:center;
}
.quick-donate-modal-box h2{font-family:'Playfair Display',serif;font-size:1.3rem;color:var(--navy);margin-bottom:0.4rem;}
.quick-donate-modal-box .donation-payment-card{margin-top:1.2rem;text-align:left;}
.header-actions{display:flex;align-items:center;gap:1rem;margin-left:auto;flex-shrink:0;}
.btn-admin{
  display:flex;
  align-items:center;
  gap:0.5rem;
  background:var(--navy);
  color:#fff;
  padding:0.6rem 1.3rem;
  border-radius:30px;
  font-weight:700;
  font-size:0.82rem;
  letter-spacing:0.5px;
  border:none;
  cursor:pointer;
  transition:0.2s;
}
.btn-admin:hover{background:var(--navy-dark);}
.btn-admin svg{width:15px;height:15px;fill:#fff;}

/* ===== HERO ===== */
.hero{
  position:relative;
  min-height:88vh;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  overflow:hidden;
  background:
    radial-gradient(ellipse at 20% 20%, rgba(91,141,240,0.35), transparent 55%),
    radial-gradient(ellipse at 80% 15%, rgba(224,68,126,0.25), transparent 50%),
    radial-gradient(ellipse at 50% 80%, rgba(47,111,237,0.25), transparent 55%),
    linear-gradient(180deg, #0a0f24 0%, #0d1330 45%, #141a35 100%);
}
.hero-video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:0;
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    repeating-linear-gradient(115deg, rgba(255,255,255,0.03) 0 2px, transparent 2px 40px),
    repeating-linear-gradient(25deg, rgba(255,255,255,0.02) 0 2px, transparent 2px 60px);
  mix-blend-mode:screen;
  opacity:0.6;
}
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(6,9,25,0.4) 0%, rgba(6,9,25,0.32) 40%, rgba(6,9,25,0.48) 100%);
}
.hero-content{
  position:relative;
  z-index:2;
  max-width:900px;
  width:100%;
  padding:2.4rem 2rem;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.hero-badge{
  display:inline-block;
  padding:0.5rem 1.3rem;
  border:1px solid rgba(91,141,240,0.5);
  border-radius:30px;
  color:#c7d8fb;
  font-size:0.78rem;
  font-weight:700;
  letter-spacing:1.5px;
  text-transform:uppercase;
  margin-bottom:1.8rem;
  background:rgba(10,15,35,0.62);
  backdrop-filter:blur(3px);
  text-shadow:0 1px 4px rgba(0,0,0,0.7);
}
.hero h2{
  font-family:'Playfair Display',serif;
  font-weight:700;
  font-size:clamp(2.4rem, 6vw, 4.2rem);
  line-height:1.15;
  color:#ffffff;
  text-shadow:0 2px 24px rgba(0,0,0,0.75), 0 2px 6px rgba(0,0,0,0.85);
}
.hero h2 em{
  font-style:italic;
  font-weight:600;
  color:#bcd4ff;
  text-shadow:0 2px 24px rgba(0,0,0,0.75), 0 2px 6px rgba(0,0,0,0.85);
}
.hero p.lead{
  margin-top:1.6rem;
  max-width:640px;
  color:#ffffff;
  font-size:1.15rem;
  line-height:1.7;
  text-shadow:0 1px 12px rgba(0,0,0,0.85), 0 1px 4px rgba(0,0,0,0.7);
}
.hero-actions{
  margin-top:2.4rem;
  display:flex;
  gap:1.1rem;
  flex-wrap:wrap;
  justify-content:center;
}
.btn{
  display:inline-flex;
  align-items:center;
  gap:0.6rem;
  padding:1rem 2rem;
  border-radius:40px;
  font-weight:700;
  font-size:0.95rem;
  letter-spacing:0.5px;
  cursor:pointer;
  border:none;
  transition:0.25s;
}
.btn-primary{
  background:linear-gradient(90deg,var(--pink),var(--blue));
  color:#fff;
  box-shadow:0 10px 25px rgba(47,111,237,0.35);
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(47,111,237,0.45);}
.btn-outline{
  background:rgba(255,255,255,0.06);
  color:#fff;
  border:1px solid rgba(255,255,255,0.35);
}
.btn-outline:hover{background:rgba(255,255,255,0.14);}
.btn svg{width:16px;height:16px;}

/* ===== FEATURES ===== */
.features{
  background:#f4f6fc;
  padding:5rem 2rem;
}
.features-grid{
  max-width:1200px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:2rem;
}
.feature-card{
  background:#fff;
  border-radius:28px;
  padding:2.5rem 2rem;
  border:1px solid #e7ecf9;
  box-shadow:0 10px 30px rgba(15,27,61,0.05);
  transition:0.25s;
}
.feature-card:hover{
  transform:translateY(-4px);
  box-shadow:0 16px 36px rgba(15,27,61,0.09);
}
.feature-icon{
  width:64px;
  height:64px;
  border-radius:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:1.6rem;
}
.feature-icon-light{background:#e9eefc;}
.feature-icon-light svg{width:28px;height:28px;color:var(--blue);}
.feature-icon-solid{background:var(--blue);}
.feature-icon-solid svg{width:28px;height:28px;fill:#fff;}
.feature-card h3{
  font-family:'Playfair Display',serif;
  font-size:1.4rem;
  font-weight:700;
  color:var(--navy);
  margin-bottom:0.8rem;
}
.feature-card p{
  color:var(--muted);
  font-size:0.98rem;
  line-height:1.7;
}
@media (max-width:900px){
  .features-grid{grid-template-columns:1fr;}
}

/* ===== CHAPELS SHOWCASE ===== */
.chapels-showcase{
  background:#1c3f91;
  padding-top:4.5rem;
}
.chapels-header{
  max-width:1300px;
  margin:0 auto;
  padding:0 2rem 3.5rem;
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  flex-wrap:wrap;
  gap:1.5rem;
}
.section-eyebrow{
  display:block;
  color:#8fb0f5;
  font-size:0.8rem;
  font-weight:700;
  letter-spacing:3px;
  text-transform:uppercase;
  margin-bottom:1rem;
}
.chapels-title{
  font-family:'Playfair Display',serif;
  font-weight:700;
  font-size:clamp(2rem, 4.5vw, 3.2rem);
  line-height:1.2;
  color:#fff;
}
.chapels-title span{color:#6f9bf5;}
.view-all-link{
  display:inline-flex;
  align-items:center;
  gap:0.6rem;
  color:#fff;
  font-weight:700;
  font-size:0.9rem;
  letter-spacing:0.5px;
  padding-bottom:0.6rem;
  border-bottom:2px solid rgba(255,255,255,0.4);
  white-space:nowrap;
  transition:0.2s;
}
.view-all-link:hover{border-color:#fff;}
.view-all-link svg{width:16px;height:16px;}
.chapels-carousel-wrap{
  position:relative;
  padding:0 2rem 4.5rem;
}
.chapels-carousel{
  display:flex;
  gap:1.2rem;
  overflow-x:auto;
  scroll-behavior:smooth;
  scrollbar-width:none;
  padding-bottom:0.4rem;
}
.chapels-carousel::-webkit-scrollbar{display:none;}
.chapels-carousel.auto-sliding{scroll-behavior:auto;}
.chapel-slide{
  flex:0 0 auto;
  width:300px;
  height:340px;
  border-radius:20px;
  position:relative;
  overflow:hidden;
  cursor:pointer;
  background-color:#284b9e;
  background-size:cover;
  background-position:center;
  transition:transform 0.3s ease;
}
.chapel-slide:hover{transform:translateY(-6px);}
.chapel-slide::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(to top, rgba(10,20,50,0.85) 0%, rgba(10,20,50,0.15) 55%, transparent 75%);
}
.chapel-slide .chapel-slide-info{
  position:absolute;
  left:0; right:0; bottom:0;
  padding:1.2rem 1.4rem;
  z-index:1;
  color:#fff;
}
.chapel-slide .chapel-slide-info strong{
  display:block;
  font-family:'Playfair Display',serif;
  font-size:1.15rem;
  margin-bottom:0.3rem;
}
.chapel-slide .chapel-slide-info span{
  display:flex;
  align-items:center;
  gap:0.4rem;
  font-size:0.78rem;
  opacity:0.85;
}
.chapel-slide .chapel-slide-info span svg{width:13px;height:13px;flex-shrink:0;}
.chapels-carousel-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:46px;
  height:46px;
  border-radius:50%;
  background:#fff;
  border:none;
  color:var(--navy);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(0,0,0,0.25);
  z-index:2;
  transition:0.2s;
}
.chapels-carousel-arrow:hover{background:var(--blue);color:#fff;}
.chapels-carousel-arrow.left{left:0.4rem;}
.chapels-carousel-arrow.right{right:0.4rem;}
@media (max-width:700px){
  .chapels-carousel-arrow{display:none;}
  .chapels-carousel-wrap{padding:0 1rem 3.5rem;}
}

/* ===== JOIN OUR MISSION ===== */
.mission-wrap{
  background:#f4f6fc;
  padding:4rem 2rem 5rem;
}
.mission-card{
  max-width:1300px;
  margin:0 auto;
  background:#1c3f91;
  border-radius:36px;
  padding:4.5rem 3.5rem;
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:3rem;
  align-items:center;
  position:relative;
  overflow:hidden;
}
.mission-card::before{
  content:"";
  position:absolute;
  width:600px;
  height:600px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:50%;
  top:-200px;
  left:20%;
}
.mission-text{position:relative;z-index:1;}
.section-eyebrow.center{
  display:block;
  text-align:center;
}
.mission-title{
  font-family:'Playfair Display',serif;
  font-weight:700;
  font-size:clamp(2rem, 4vw, 2.9rem);
  line-height:1.25;
  color:#fff;
}
.mission-title em{
  font-style:italic;
  font-weight:600;
  color:#6f9bf5;
}
.guidance-card{
  position:relative;
  z-index:1;
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.15);
  border-radius:24px;
  padding:2rem;
}
.guidance-icon{
  width:48px;
  height:48px;
  border-radius:50%;
  background:var(--blue);
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:1rem;
}
.guidance-icon svg{width:22px;height:22px;}
.guidance-card h3{
  font-family:'Playfair Display',serif;
  color:#fff;
  font-size:1.3rem;
  margin-bottom:0.2rem;
}
.guidance-sub{
  color:#a9c2f7;
  font-size:0.75rem;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
}
.guidance-card hr{
  border:none;
  border-top:1px solid rgba(255,255,255,0.15);
  margin:1.2rem 0;
}
.guidance-quote{
  color:#e3e9fb;
  font-style:italic;
  line-height:1.7;
  font-size:1rem;
}
.guidance-cite{
  color:#8fb0f5;
  font-size:0.85rem;
  margin-top:0.6rem;
}

/* ===== UPCOMING CELEBRATIONS ===== */
.events-section{
  background:#f4f6fc;
  padding:1rem 2rem 5rem;
}
.events-header{
  max-width:1300px;
  margin:0 auto;
  text-align:center;
  margin-bottom:3rem;
}
.events-title{
  font-family:'Playfair Display',serif;
  font-weight:700;
  font-size:clamp(2rem, 4.5vw, 3rem);
  color:var(--navy);
}
.events-title em{
  font-style:italic;
  color:var(--blue);
}
.events-grid{
  max-width:1300px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:2rem;
}
.event-card{
  background:#fff;
  border-radius:24px;
  overflow:hidden;
  box-shadow:0 10px 30px rgba(15,27,61,0.06);
}
.event-photo{
  position:relative;
  height:220px;
  background-color:#284b9e;
  background-size:cover;
  background-position:center;
}
.event-date{
  position:absolute;
  top:1rem;
  left:1rem;
  background:#fff;
  border-radius:14px;
  padding:0.5rem 0.9rem;
  text-align:center;
  line-height:1.2;
  font-size:0.7rem;
  font-weight:700;
  letter-spacing:0.5px;
  text-transform:uppercase;
  color:var(--muted);
}
.event-date strong{
  display:block;
  font-family:'Playfair Display',serif;
  font-size:1.15rem;
  color:var(--navy);
}
.event-body{padding:1.5rem;}
.event-tag{
  display:inline-flex;
  align-items:center;
  gap:0.4rem;
  color:var(--blue);
  font-size:0.75rem;
  font-weight:700;
  letter-spacing:0.5px;
  text-transform:uppercase;
  margin-bottom:0.7rem;
}
.event-tag svg{width:14px;height:14px;}
.event-card h3{
  font-family:'Playfair Display',serif;
  font-size:1.25rem;
  color:var(--navy);
  line-height:1.4;
}

/* ===== STATS BAR ===== */
.stats-bar{
  background:#dceafd;
  padding:4.5rem 2rem;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:2rem;
  text-align:center;
}
.stat-number{
  font-family:'Playfair Display',serif;
  font-weight:700;
  font-size:clamp(2.2rem, 4vw, 3rem);
  color:var(--blue);
}
.stat-label{
  margin-top:0.4rem;
  color:var(--muted);
  font-size:0.8rem;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
}
@media (max-width:900px){
  .stats-bar{grid-template-columns:repeat(2, 1fr);}
}

/* ===== FOOTER ===== */
.main-footer{
  background:#152d63;
  padding:4rem 2rem 0;
}
.footer-grid{
  max-width:1300px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1.6fr 1fr 1fr 1.2fr;
  gap:3rem;
  padding-bottom:3rem;
}
.footer-brand{
  display:flex;
  align-items:center;
  gap:0.8rem;
  margin-bottom:1.2rem;
}
.footer-brand h3{
  font-family:'Playfair Display',serif;
  color:#fff;
  font-size:1.25rem;
}
.footer-about p{
  color:#a9b6dc;
  font-size:0.92rem;
  line-height:1.7;
}
.footer-socials{
  display:flex;
  gap:0.8rem;
  margin-top:1.4rem;
}
.footer-socials a{
  width:38px;
  height:38px;
  border-radius:50%;
  background:rgba(255,255,255,0.1);
  display:flex;
  align-items:center;
  justify-content:center;
  transition:0.2s;
}
.footer-socials a:hover{background:var(--blue);}
.footer-socials svg{width:17px;height:17px;}
.footer-links h4{
  color:#8fb0f5;
  font-family:'Playfair Display',serif;
  font-size:0.95rem;
  letter-spacing:1px;
  text-transform:uppercase;
  margin-bottom:1.3rem;
}
.footer-links a,
.footer-contact-item{
  display:flex;
  align-items:flex-start;
  gap:0.5rem;
  color:#c3cdec;
  font-size:0.92rem;
  margin-bottom:1rem;
  line-height:1.5;
}
.footer-links a:hover{color:#fff;}
.footer-contact-item svg{width:16px;height:16px;flex-shrink:0;margin-top:0.2rem;color:#8fb0f5;}
.footer-newsletter p{
  color:#a9b6dc;
  font-size:0.92rem;
  line-height:1.6;
  margin-bottom:1.2rem;
}
.newsletter-form{
  display:flex;
  gap:0.6rem;
}
.newsletter-form input{
  flex:1;
  min-width:0;
  padding:0.7rem 1rem;
  border-radius:30px;
  border:1px solid rgba(255,255,255,0.2);
  background:rgba(255,255,255,0.06);
  color:#fff;
  font-size:0.9rem;
}
.newsletter-form input::placeholder{color:#8b98bd;}
.newsletter-form button{
  background:var(--blue);
  color:#fff;
  border:none;
  padding:0 1.3rem;
  border-radius:30px;
  font-weight:700;
  font-size:0.85rem;
  cursor:pointer;
  transition:0.2s;
}
.newsletter-form button:hover{background:#2560d4;}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,0.1);
  padding:1.5rem 0;
  text-align:center;
  color:#8391b8;
  font-size:0.85rem;
}
@media (max-width:900px){
  .footer-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:600px){
  .footer-grid{grid-template-columns:1fr;}
  .mission-card{grid-template-columns:1fr;}
}

/* ===== SUBPAGE HERO ===== */
.page-hero{
  background:
    radial-gradient(ellipse at 30% 20%, rgba(91,141,240,0.25), transparent 60%),
    linear-gradient(180deg, #16255c 0%, #1c3f91 100%);
  padding:5rem 2rem 6rem;
  text-align:center;
  color:#fff;
  position:relative;
  overflow:hidden;
}
.page-hero h1{
  font-family:'Playfair Display',serif;
  font-weight:700;
  font-size:clamp(2.2rem, 5vw, 3.4rem);
  margin-top:0.8rem;
  line-height:1.2;
}
.page-hero h1 em{font-style:italic;color:#7fa6f7;}
.page-hero p{
  max-width:640px;
  margin:1.2rem auto 0;
  color:#c7cde6;
  font-size:1.05rem;
  line-height:1.7;
}
.page-panel-overlap{
  max-width:1300px;
  margin:-3.5rem auto 0;
  background:#fff;
  border-radius:32px;
  padding:2rem;
  box-shadow:0 20px 40px rgba(15,27,61,0.12);
  position:relative;
  z-index:2;
}

/* ===== MINISTRIES GRID (ABOUT) ===== */
.ministries-section{padding:4.5rem 2rem 2rem;text-align:center;}
.ministries-section h2{
  font-family:'Playfair Display',serif;
  font-size:2rem;
  color:var(--ink);
  margin-bottom:2.5rem;
}
.ministries-grid{
  max-width:1300px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1.5rem;
}
.ministry-card{
  background:#fff;
  border:1px solid #eef1f9;
  border-radius:20px;
  padding:2.2rem 1rem;
  box-shadow:0 8px 20px rgba(15,27,61,0.05);
  transition:0.2s;
}
.ministry-card:hover{border-color:var(--blue);transform:translateY(-3px);}
.ministry-card .emoji{font-size:2rem;margin-bottom:0.8rem;}
.ministry-card h3{font-family:'Playfair Display',serif;font-size:1.05rem;color:var(--navy);}
.ministry-card .ministry-head{font-size:0.8rem;color:var(--muted);margin-top:0.3rem;}
.ministry-card-photo{width:64px;height:64px;border-radius:50%;object-fit:cover;margin-bottom:0.8rem;}
.person-card-clickable{cursor:pointer;}
.person-card-clickable:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(15,27,61,0.12);}

/* ===== Priest/Person Profile Modal ===== */
.person-profile-modal-box{max-width:440px;text-align:center;padding:2.5rem 2.2rem 2.2rem;}
.person-profile-photo-wrap{width:120px;height:120px;margin:0 auto 1.2rem;position:relative;}
.person-profile-photo{width:120px;height:120px;border-radius:50%;object-fit:cover;box-shadow:0 10px 24px rgba(15,27,61,0.18);}
.person-profile-photo.hidden{display:none;}
.person-profile-photo-fallback{
  width:120px;height:120px;border-radius:50%;background:#eef2fb;color:var(--muted);
  display:flex;align-items:center;justify-content:center;font-size:2.4rem;
}
#personProfileName{font-family:'Playfair Display',serif;font-size:1.3rem;color:var(--navy);margin-bottom:0.4rem;}
.person-profile-role{display:inline-block;background:#eaf0fe;color:var(--blue);font-size:0.78rem;font-weight:700;padding:0.35rem 0.9rem;border-radius:16px;margin-bottom:1.2rem;}
.person-profile-bio{text-align:left;line-height:1.8;color:var(--muted);font-size:0.92rem;white-space:pre-line;}

/* ===== Ministry/Commission Officers Modal ===== */
.ministry-officers-modal-box{max-width:460px;padding:2.2rem;}
.ministry-officers-modal-box h2{font-family:'Playfair Display',serif;font-size:1.25rem;color:var(--navy);margin-bottom:0.3rem;}
.ministry-card-clickable{cursor:pointer;}
.ministry-officers-list{display:flex;flex-direction:column;gap:0.6rem;margin-top:1rem;}
.ministry-officer-row{
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
  background:#f7f9fd;border-radius:12px;padding:0.7rem 1rem;
}
.ministry-officer-row strong{display:block;font-size:0.9rem;color:var(--navy);}
.ministry-officer-row span{display:block;font-size:0.78rem;color:var(--muted);margin-top:0.1rem;}
.ministry-officer-row button{
  background:none;border:none;color:#c0392b;cursor:pointer;padding:0.3rem;flex-shrink:0;
}

/* ===== Announcements (About page) ===== */
.announcements-grid{display:flex;flex-direction:column;gap:0.9rem;}
.announcement-card{
  display:flex;align-items:flex-start;gap:0.9rem;background:#fff;border:1px solid #e7ecf9;
  border-left:4px solid var(--blue);border-radius:12px;padding:1.1rem 1.3rem;box-shadow:0 4px 12px rgba(15,27,61,0.05);
}
.announcement-icon{flex-shrink:0;color:var(--blue);margin-top:0.15rem;}
.announcement-body{flex:1;min-width:0;}
.announcement-card p{font-size:0.92rem;color:var(--navy);line-height:1.7;white-space:pre-line;margin:0;}
.events-announcements-section{margin-bottom:0;}
.events-announcements-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1rem;}
.events-announcements-head h2{margin-bottom:0;}
#eventsAnnouncementForm{margin-bottom:1.2rem;}

.about-history-section-wrap{
  padding:0;
  max-width:none;
  background:linear-gradient(180deg, #f6f8fd 0%, #fff 100%);
}
.about-history-section-wrap h2{
  padding-top:4rem;
  font-size:2rem;
}
.about-history-block{
  display:flex;flex-direction:column;align-items:center;gap:0;
  background:transparent;border-radius:0;padding:0 0 4.5rem;box-shadow:none;text-align:center;
}
.about-history-photo{
  width:100%;
  max-width:1100px;
  height:clamp(260px, 42vw, 460px);
  max-height:none;
  border-radius:28px;
  object-fit:cover;
  box-shadow:0 30px 70px rgba(15,27,61,0.22);
  margin:0 2rem 2.6rem;
}
.about-history-photo.hidden{display:none;}
.about-history-text{
  max-width:820px;
  margin:0 2rem;
  line-height:1.95;
  font-size:1.02rem;
  color:var(--muted);
  white-space:pre-line;
  text-align:left;
}
@media (max-width:700px){
  .about-history-photo{margin:0 1.2rem 2rem;border-radius:20px;}
  .about-history-text{margin:0 1.2rem;}
}
.about-history-entry-title{
  font-family:'Playfair Display',serif;font-size:1.3rem;color:var(--navy);
  margin:0 2rem 1.2rem;text-align:center;
}
.about-history-block-secondary{
  border-top:1px solid #eef1f8;padding-top:3rem;margin-top:1rem;
}
@media (max-width:700px){
  .about-history-entry-title{margin:0 1.2rem 1rem;}
}

/* ===== About page: section tags + past-priests muted treatment ===== */
.about-section-tag{
  display:inline-block;background:#eaf0fe;color:var(--blue);font-size:0.72rem;font-weight:700;
  letter-spacing:0.6px;text-transform:uppercase;padding:0.4rem 1rem;border-radius:20px;margin-bottom:0.8rem;
}
.about-section-tag.muted{background:#eef1f8;color:var(--muted);}
.about-past-priests-section{background:#f9fafc;border-top:1px solid #eef1f8;}
.past-clergy-grid .ministry-card{opacity:0.85;filter:grayscale(35%);}
.past-clergy-grid .ministry-card:hover{opacity:1;filter:grayscale(0%);}
@media (max-width:900px){.ministries-grid{grid-template-columns:repeat(2, 1fr);}}

/* ===== VISION & MISSION ===== */
.vm-wrap{padding:4rem 2rem;}
.vision-mission{
  max-width:1300px;
  margin:0 auto;
  background:#0d1730;
  border-radius:36px;
  padding:4rem 3rem;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:3rem;
  color:#fff;
}
.vm-col h2{
  font-family:'Playfair Display',serif;
  font-size:1.6rem;
  margin-bottom:1.2rem;
  padding-left:1rem;
  border-left:4px solid var(--blue);
}
.vm-col p.quote{font-style:italic;color:#c7cde6;line-height:1.85;}
.vm-col ul{list-style:none;}
.vm-col ul li{
  position:relative;
  padding-left:1.4rem;
  margin-bottom:1rem;
  color:#d7dced;
  line-height:1.6;
}
.vm-col ul li::before{
  content:"";
  position:absolute;
  left:0;
  top:0.55em;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--blue);
}
@media (max-width:800px){.vision-mission{grid-template-columns:1fr;}}

/* ===== OUR PATRONESS ===== */
.patroness-section{padding:1rem 2rem 4rem;}
.patroness-grid{
  max-width:1300px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:3rem;
  align-items:center;
}
.patroness-text h2{font-family:'Playfair Display',serif;font-size:2rem;color:var(--navy);margin-bottom:0.5rem;}
.patroness-text h3{font-family:'Playfair Display',serif;font-size:1.2rem;color:var(--blue);margin-bottom:1rem;}
.patroness-text p{color:var(--muted);line-height:1.8;margin-bottom:1rem;}
.patroness-text p.quote{font-style:italic;color:var(--navy);font-weight:600;}
.patroness-photo{border-radius:28px;overflow:hidden;box-shadow:0 20px 40px rgba(15,27,61,0.15);}
.patroness-photo img{width:100%;display:block;}
@media (max-width:900px){.patroness-grid{grid-template-columns:1fr;}}

/* ===== PARISH EVENTS + MINISTRIES LIST ===== */
.events-ministries{
  max-width:1300px;
  margin:0 auto;
  padding:4rem 2rem;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:3rem;
}
.pe-col h2{font-family:'Playfair Display',serif;font-size:1.7rem;color:var(--ink);margin-bottom:1.5rem;}
.pe-event{margin-bottom:1.5rem;}
.pe-event h4{color:var(--blue);font-family:'Playfair Display',serif;font-size:1.1rem;margin-bottom:0.3rem;}
.pe-event p{color:var(--muted);font-size:0.92rem;line-height:1.6;}
.pm-list{background:#eef2fb;border-radius:24px;padding:1.5rem;}
.pm-list p.intro{color:var(--muted);margin-bottom:1rem;font-size:0.92rem;}
.pm-item{
  background:#fff;
  border-radius:16px;
  padding:1rem 1.2rem;
  margin-bottom:0.8rem;
  display:flex;
  align-items:center;
  gap:0.6rem;
  color:var(--ink);
  font-weight:600;
  box-shadow:0 4px 10px rgba(15,27,61,0.04);
}
.pm-item::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--blue);flex-shrink:0;}
@media (max-width:800px){.events-ministries{grid-template-columns:1fr;}}

/* ===== CONTACT BOX ===== */
.contact-box{
  max-width:1300px;
  margin:0 auto 4rem;
  background:var(--blue);
  border-radius:36px;
  padding:4rem 3rem;
  text-align:center;
  color:#fff;
}
.contact-box h2{font-family:'Playfair Display',serif;font-size:2rem;margin-bottom:2.5rem;}
.contact-cols{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:2rem;
  max-width:900px;
  margin:0 auto;
}
.contact-col{display:flex;flex-direction:column;align-items:center;}
.contact-col .c-icon{
  width:56px;
  height:56px;
  border-radius:50%;
  background:rgba(255,255,255,0.15);
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:1rem;
}
.contact-col .c-icon svg{width:24px;height:24px;}
.contact-col h3{font-family:'Playfair Display',serif;font-size:1.1rem;margin-bottom:0.6rem;}
.contact-col p{font-size:0.92rem;line-height:1.6;color:#dbe6fb;}
@media (max-width:900px){.contact-cols{grid-template-columns:1fr;}}

/* ===== CHAPELS SEARCH + GRID ===== */
.search-panel{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;}
.search-box{
  flex:1;
  min-width:240px;
  display:flex;
  align-items:center;
  gap:0.8rem;
  background:#eef2fb;
  border-radius:30px;
  padding:0.9rem 1.5rem;
}
.search-box svg{width:18px;height:18px;color:var(--muted);flex-shrink:0;}
.search-box input{flex:1;border:none;background:transparent;font-size:0.95rem;color:var(--ink);outline:none;}
.search-meta{display:flex;align-items:center;gap:1rem;}
.search-meta .count-label{text-align:right;}
.search-meta .count-label span{display:block;font-size:0.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px;}
.search-meta .count-label strong{font-family:'Playfair Display',serif;font-size:1.3rem;color:var(--navy);}
.filter-btn{
  width:46px;
  height:46px;
  border-radius:14px;
  background:#eef2fb;
  border:none;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  color:var(--blue);
  flex-shrink:0;
}
.filter-btn svg{width:18px;height:18px;}
.chapel-grid-section{max-width:1300px;margin:0 auto;padding:3rem 2rem 5rem;}
.chapel-cards-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:2rem;}
.chapel-card2{background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 10px 25px rgba(15,27,61,0.06);}
.chapel-card2 .photo{
  position:relative;
  height:220px;
  background-size:cover;
  background-position:center;
  background-color:#284b9e;
}
.chapel-card2 .badge-icon{
  position:absolute;
  top:1rem;
  left:1rem;
  width:36px;
  height:36px;
  border-radius:10px;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
}
.chapel-card2 .badge-icon svg{width:18px;height:18px;color:var(--blue);}
.chapel-card2 .badge-icon img{width:22px;height:22px;object-fit:contain;}
.chapel-card2 .info{padding:1.2rem 1.2rem 0.2rem;}
.chapel-card2 .chapel-name{
  font-family:'Playfair Display',serif;
  font-size:1.15rem;
  color:var(--navy);
  line-height:1.3;
  margin-bottom:0.4rem;
}
.chapel-card2 .chapel-location{
  display:flex;
  align-items:center;
  gap:0.4rem;
  color:var(--muted);
  font-size:0.82rem;
  line-height:1.4;
}
.chapel-card2 .chapel-location svg{width:14px;height:14px;flex-shrink:0;}
.chapel-card2 .tag{
  padding:1rem 1.2rem;
  display:flex;
  align-items:center;
  gap:0.5rem;
  color:var(--blue);
  font-size:0.78rem;
  font-weight:700;
  letter-spacing:0.5px;
  text-transform:uppercase;
}
.chapel-card2 .tag svg{width:14px;height:14px;flex-shrink:0;}
.chapel-card2.hidden{display:none;}
@media (max-width:900px){.chapel-cards-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:600px){.chapel-cards-grid{grid-template-columns:1fr;}}

/* ===== EVENTS LIST (events.html) ===== */
.events-list-section{
  max-width:1300px;
  margin:0 auto;
  padding:3rem 2rem 5rem;
  display:flex;
  flex-direction:column;
  gap:2rem;
}
.event-card-h{
  display:grid;
  grid-template-columns:340px 1fr;
  background:#fff;
  border-radius:28px;
  overflow:hidden;
  box-shadow:0 15px 35px rgba(15,27,61,0.08);
}
.event-card-h .photo{
  position:relative;
  background-size:cover;
  background-position:center;
  background-color:#284b9e;
  min-height:240px;
}
.event-card-h .date-badge{
  position:absolute;
  top:1.2rem;
  left:1.2rem;
  background:#fff;
  border-radius:16px;
  padding:0.6rem 1rem;
  text-align:center;
  line-height:1.2;
}
.event-card-h .date-badge strong{display:block;font-family:'Playfair Display',serif;font-size:1.4rem;color:var(--blue);}
.event-card-h .date-badge span{font-size:0.7rem;font-weight:700;letter-spacing:0.5px;text-transform:uppercase;color:var(--muted);}
.event-card-h .content{padding:2rem 2.2rem;}
.event-meta-row{display:flex;flex-wrap:wrap;gap:1.2rem;margin-bottom:0.8rem;}
.event-meta-row span{display:inline-flex;align-items:center;gap:0.4rem;font-size:0.78rem;font-weight:700;letter-spacing:0.5px;text-transform:uppercase;color:var(--blue);}
.event-meta-row svg{width:14px;height:14px;}
.event-meta-row .loc{color:var(--muted);}
.event-card-h h3{font-family:'Playfair Display',serif;font-size:1.5rem;color:var(--navy);margin-bottom:0.6rem;}
.event-card-h p.desc{color:var(--muted);line-height:1.7;}
@media (max-width:800px){.event-card-h{grid-template-columns:1fr;}}

/* ===== SERVICES PAGE ===== */
.urgent-panel{display:flex;align-items:center;gap:1.5rem;}
.urgent-icon{width:48px;height:48px;border-radius:14px;background:#eef2fb;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.urgent-icon svg{width:22px;height:22px;color:var(--blue);}
.urgent-panel h3{font-family:'Playfair Display',serif;color:var(--navy);font-size:1.2rem;margin-bottom:0.4rem;}
.urgent-panel p{color:var(--muted);font-style:italic;font-size:0.92rem;line-height:1.6;}
.hours-section{max-width:900px;margin:0 auto;padding:4rem 2rem 5rem;text-align:center;}
.hours-icon{width:70px;height:70px;border-radius:50%;margin:0 auto 1.5rem;display:flex;align-items:center;justify-content:center;}
.hours-icon.closed{background:#fde3e3;color:#e34848;}
.hours-icon.open{background:#e3f5e9;color:#22a35a;}
.hours-icon svg{width:32px;height:32px;}
.hours-section h2{font-family:'Playfair Display',serif;font-size:2rem;color:var(--navy);margin-bottom:0.8rem;}
.hours-section .hours-note{color:var(--muted);font-style:italic;max-width:520px;margin:0 auto 2.5rem;line-height:1.7;}
.hours-cards{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;}
.hours-card{background:#eef2fb;border-radius:20px;padding:1.5rem;}
.hours-card .label{color:var(--blue);font-size:0.8rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin-bottom:0.6rem;}
.hours-card .time{font-family:'Playfair Display',serif;color:var(--navy);font-weight:700;font-size:1.05rem;line-height:1.6;}
@media (max-width:600px){.hours-cards{grid-template-columns:1fr;}}

/* ===== SERVICES MENU ===== */
.services-menu-section{max-width:1300px;margin:0 auto;padding:4rem 2rem 1rem;}
.services-menu-heading{
  font-family:'Playfair Display',serif;
  font-size:1.9rem;
  color:var(--navy);
  text-align:center;
  margin-bottom:2rem;
}
.closed-notice{
  display:flex;
  align-items:flex-start;
  gap:1rem;
  background:#fdecec;
  border:1px solid #f6c8c8;
  border-radius:20px;
  padding:1.3rem 1.5rem;
  margin-bottom:2rem;
  color:#a03434;
}
.closed-notice svg{width:24px;height:24px;flex-shrink:0;margin-top:0.1rem;}
.closed-notice strong{display:block;font-family:'Playfair Display',serif;font-size:1.05rem;margin-bottom:0.3rem;color:#8a2a2a;}
.closed-notice p{font-size:0.88rem;line-height:1.6;margin:0;}
.services-menu-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2rem;
}
.services-menu-grid.disabled .service-card{
  opacity:0.5;
  cursor:not-allowed;
  pointer-events:none;
}
.service-card{
  background:#fff;
  border:1px solid #e7ecf9;
  border-radius:28px;
  padding:2.2rem;
  text-align:left;
  cursor:pointer;
  box-shadow:0 10px 25px rgba(15,27,61,0.05);
  transition:0.25s ease;
}
.service-card:hover{transform:translateY(-3px);box-shadow:0 16px 32px rgba(15,27,61,0.1);border-color:var(--blue);}
.service-card:active{transform:translateY(-1px) scale(0.99);}
.service-card-icon{
  width:56px;
  height:56px;
  border-radius:16px;
  background:#eef2fb;
  color:var(--blue);
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:1.2rem;
  transition:0.25s ease;
}
.service-card:hover .service-card-icon{background:var(--blue);color:#fff;transform:scale(1.08) rotate(-4deg);}
.service-card-icon svg{width:26px;height:26px;transition:0.25s ease;}
.service-card h3{font-family:'Playfair Display',serif;font-size:1.3rem;color:var(--navy);margin-bottom:0.5rem;}
.service-card p{color:var(--muted);font-size:0.92rem;line-height:1.6;margin-bottom:1.2rem;}
.service-card-cta{display:inline-flex;align-items:center;gap:0.5rem;color:var(--blue);font-weight:700;font-size:0.88rem;transition:0.2s ease;}
.service-card-cta svg{width:15px;height:15px;transition:transform 0.25s ease;}
.service-card:hover .service-card-cta svg{transform:translateX(4px);}
@media (max-width:800px){.services-menu-grid{grid-template-columns:1fr;}}

/* ===== SERVICE WIZARD SHELL ===== */
.wizard-wrap{background:#f4f6fc;min-height:70vh;}
.wizard-topbar{
  background:linear-gradient(120deg, var(--navy), var(--blue));
  color:#fff;
  padding:1rem 2rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:1rem;
}
.wizard-back-link{
  background:rgba(255,255,255,0.12);
  border:none;
  color:#dbe6fb;
  font-weight:700;
  font-size:0.78rem;
  letter-spacing:0.5px;
  text-transform:uppercase;
  padding:0.55rem 1rem;
  border-radius:20px;
  display:inline-flex;
  align-items:center;
  gap:0.4rem;
  cursor:pointer;
}
.wizard-back-link svg{width:14px;height:14px;}
.wizard-back-link:hover{background:rgba(255,255,255,0.22);}
.wizard-topbar h2{
  font-family:'Playfair Display',serif;
  font-size:1.1rem;
  letter-spacing:1px;
  text-transform:uppercase;
}
.wizard-secure{
  display:inline-flex;
  align-items:center;
  gap:0.4rem;
  background:rgba(255,255,255,0.1);
  border:1px solid rgba(255,255,255,0.25);
  color:#cfe0fc;
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.5px;
  text-transform:uppercase;
  padding:0.4rem 0.8rem;
  border-radius:20px;
}
.wizard-secure svg{width:13px;height:13px;}
.wizard-body{max-width:900px;margin:0 auto;padding:3rem 1.5rem 5rem;}

/* step indicator */
.wizard-steps{
  display:flex;
  align-items:flex-start;
  justify-content:center;
  gap:0;
  margin-bottom:2.5rem;
}
.wizard-step{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0.5rem;
  position:relative;
  flex:1;
  max-width:150px;
}
.wizard-step:not(:last-child)::after{
  content:"";
  position:absolute;
  top:20px;
  left:calc(50% + 26px);
  width:calc(100% - 26px);
  height:2px;
  background:#dbe3f7;
}
.wizard-step.done:not(:last-child)::after{background:var(--blue);}
.step-icon{
  width:40px;
  height:40px;
  border-radius:50%;
  background:#e7ecf9;
  color:#9aa5c4;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:1;
  transition:0.2s;
}
.step-icon svg{width:18px;height:18px;}
.wizard-step span{
  font-size:0.68rem;
  font-weight:700;
  letter-spacing:0.5px;
  text-transform:uppercase;
  color:#9aa5c4;
  text-align:center;
}
.wizard-step.active .step-icon{background:var(--blue);color:#fff;}
.wizard-step.active span{color:var(--blue);}
.wizard-step.done .step-icon{background:var(--blue);color:#fff;}
.wizard-step.done span{color:var(--navy);}

/* panels */
.wizard-panel{
  background:#fff;
  border-radius:28px;
  padding:2.2rem 2.5rem;
  box-shadow:0 10px 25px rgba(15,27,61,0.05);
}
.wizard-panel-title{font-family:'Playfair Display',serif;font-size:1.3rem;color:var(--navy);text-align:center;margin-bottom:0.3rem;}
.wizard-panel-sub{color:var(--muted);font-size:0.88rem;font-style:italic;text-align:center;margin-bottom:1.5rem;}
.wizard-label{
  display:flex;
  align-items:center;
  gap:0.4rem;
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.8px;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:0.5rem;
  margin-top:1.2rem;
}
.wizard-label:first-child{margin-top:0;}
.wizard-label svg{width:14px;height:14px;color:var(--blue);}
.wizard-label.section-label{
  color:var(--blue);
  font-size:0.8rem;
  margin-top:2rem;
  padding-top:1.3rem;
  border-top:1px dashed #e2e7f5;
}
.wizard-label.section-label:first-child{margin-top:0;padding-top:0;border-top:none;}
.wizard-panel input[type="text"],
.wizard-panel input[type="email"],
.wizard-panel input[type="tel"],
.wizard-panel textarea{
  width:100%;
  padding:0.85rem 1.1rem;
  border-radius:14px;
  border:1px solid #dde3f5;
  background:#f8f9fd;
  font-size:0.95rem;
  font-family:inherit;
  outline:none;
}
.wizard-panel input:focus,
.wizard-panel textarea:focus{border-color:var(--blue);}
.wizard-two-col{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;}
@media (max-width:700px){.wizard-two-col{grid-template-columns:1fr;}}

/* chapel select grid */
.chapel-select-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0.9rem;
  max-height:340px;
  overflow-y:auto;
  padding-right:0.4rem;
}
.chapel-select-item{
  display:flex;
  align-items:center;
  gap:0.8rem;
  border:1.5px solid #e2e7f5;
  border-radius:16px;
  padding:0.8rem 1rem;
  cursor:pointer;
  transition:0.15s;
  text-align:left;
}
.chapel-select-item:hover{border-color:#b7c7f5;}
.chapel-select-item.selected{border-color:var(--blue);background:#eef4ff;}
.chapel-select-item .chapel-icon{
  width:34px;
  height:34px;
  border-radius:10px;
  background:#e7ecf9;
  color:var(--blue);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.chapel-select-item.selected .chapel-icon{background:var(--blue);color:#fff;}
.chapel-select-item .chapel-icon svg{width:16px;height:16px;}
.chapel-select-item strong{display:block;font-size:0.85rem;color:var(--navy);line-height:1.3;}
.chapel-select-item span{display:flex;align-items:center;gap:0.3rem;font-size:0.72rem;color:var(--muted);margin-top:0.2rem;}
.chapel-select-item span svg{width:11px;height:11px;flex-shrink:0;}

/* intention classification pills */
.pill-grid{display:flex;flex-wrap:wrap;gap:0.6rem;margin-bottom:1.5rem;}
.pill-item{
  border:1.5px solid #dde3f5;
  background:#fff;
  color:var(--ink);
  font-size:0.82rem;
  font-weight:600;
  padding:0.6rem 1rem;
  border-radius:12px;
  cursor:pointer;
  transition:0.15s;
}
.pill-item:hover{border-color:#b7c7f5;}
.pill-item.selected{background:var(--blue);border-color:var(--blue);color:#fff;}

/* calendar */
.schedule-row{margin-bottom:0.5rem;}
.calendar-box{background:#f8f9fd;border-radius:16px;padding:1rem;}
.calendar-head{display:flex;align-items:center;justify-content:space-between;background:var(--navy);color:#fff;border-radius:10px;padding:0.6rem 0.9rem;margin-bottom:0.8rem;}
.calendar-head button{background:none;border:none;color:#fff;cursor:pointer;display:flex;align-items:center;padding:0.2rem;}
.calendar-head button svg{width:16px;height:16px;}
.calendar-head .cal-title{font-family:'Playfair Display',serif;font-weight:700;font-size:0.9rem;text-align:center;}
.calendar-head .cal-sub{display:block;font-size:0.62rem;color:#9fb2e0;text-align:center;letter-spacing:0.5px;text-transform:uppercase;}
.calendar-grid{display:grid;grid-template-columns:repeat(7, 1fr);gap:0.3rem;text-align:center;}
.calendar-grid .cal-dow{font-size:0.65rem;font-weight:700;color:var(--muted);padding:0.3rem 0;}
.calendar-grid .cal-day{
  font-size:0.8rem;
  padding:0.45rem 0;
  border-radius:8px;
  cursor:pointer;
  color:var(--ink);
}
.calendar-grid .cal-day.muted{color:#c7cede;cursor:default;}
.calendar-grid .cal-day.disabled{color:#d3d9ea;cursor:not-allowed;}
.calendar-grid .cal-day:not(.muted):not(.disabled):hover{background:#e7ecf9;}
.calendar-grid .cal-day.selected{background:var(--blue);color:#fff;font-weight:700;}
.calendar-grid .cal-day.today:not(.selected){border:1.5px solid var(--blue);}
.calendar-grid .cal-day.has-override:not(.selected){box-shadow:inset 0 -3px 0 var(--pink);}
.cal-note{margin-top:0.7rem;font-size:0.72rem;color:var(--muted);font-style:italic;text-align:center;}

/* time grid */
.time-grid{display:grid;grid-template-columns:repeat(2, 1fr);gap:0.6rem;}
.time-slot{
  border:1.5px solid #dde3f5;
  background:#fff;
  color:var(--ink);
  font-size:0.8rem;
  font-weight:700;
  padding:0.7rem 0.5rem;
  border-radius:12px;
  cursor:pointer;
  text-align:center;
}
.time-slot:hover{border-color:#b7c7f5;}
.time-slot.selected{background:var(--blue);border-color:var(--blue);color:#fff;}
.time-slot.taken{background:#f3f4f8;border-color:#e5e9f5;color:#b6bccf;cursor:not-allowed;}
.time-slot.taken:hover{border-color:#e5e9f5;}
.taken-tag{display:block;font-size:0.6rem;font-weight:700;letter-spacing:0.5px;text-transform:uppercase;color:#c23a3a;margin-top:0.2rem;}
.time-slot.override{grid-column:1 / -1;background:#fff5f8;border-color:var(--pink);color:var(--pink);cursor:default;}
.time-slot.override:hover{border-color:var(--pink);}
.override-tag{display:block;font-size:0.6rem;font-weight:700;letter-spacing:0.5px;text-transform:uppercase;color:var(--pink);margin-top:0.2rem;}
.no-slots-note{grid-column:1 / -1;font-size:0.82rem;color:var(--muted);font-style:italic;padding:0.6rem 0;}
.schedule-notice{
  background:#fff5f8;
  border:1px solid #f7c9dc;
  color:#8a2c52;
  font-size:0.8rem;
  line-height:1.5;
  padding:0.7rem 0.9rem;
  border-radius:12px;
  margin-bottom:0.7rem;
}
.schedule-notice strong{color:var(--pink);}

/* document type list */
.doc-type-list{display:flex;flex-direction:column;gap:0.7rem;}
.doc-type-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  border:1.5px solid #dde3f5;
  background:#fff;
  color:var(--ink);
  font-weight:600;
  font-size:0.92rem;
  padding:0.9rem 1.2rem;
  border-radius:14px;
  cursor:pointer;
  transition:0.15s;
  text-align:left;
}
.doc-type-item:hover{border-color:#b7c7f5;transform:translateX(3px);box-shadow:0 4px 12px rgba(15,27,61,0.06);}
.doc-type-item.selected{background:var(--blue);border-color:var(--blue);color:#fff;transform:translateX(3px);}
.doc-type-item .radio-dot{width:18px;height:18px;border-radius:50%;border:2px solid #c7cede;flex-shrink:0;}
.doc-type-item.selected .radio-dot{border-color:#fff;background:#fff;position:relative;}
.doc-type-item.selected .radio-dot::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--blue);}

/* reminder / confirmation notice */
.reminder-box{background:#eef2fb;border-radius:20px;padding:1.8rem;text-align:center;}
.reminder-icon{
  width:48px;
  height:48px;
  border-radius:50%;
  background:var(--blue);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 1rem;
}
.reminder-icon svg{width:22px;height:22px;}
.reminder-box h3{font-family:'Playfair Display',serif;color:var(--navy);font-size:1.15rem;margin-bottom:0.8rem;}
.reminder-box p{color:var(--muted);font-size:0.88rem;font-style:italic;line-height:1.7;margin-bottom:0.6rem;}
.reminder-box hr{border:none;border-top:1px solid #d9e2fa;margin:1rem auto;width:60%;}
.reminder-tag{font-size:0.7rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--blue);}

/* ===== MASS INTENTION: DONATION NOTICE (Step 4) ===== */
.donation-box{background:#fff8ea;border:1px solid #f0e1b8;border-radius:20px;padding:1.6rem 1.8rem;margin-top:1.2rem;}
.donation-box-head{display:flex;align-items:center;gap:0.6rem;margin-bottom:0.6rem;color:#a67c1e;}
.donation-box-head h4{font-family:'Playfair Display',serif;font-size:1.05rem;color:var(--navy);margin:0;}
.donation-box-note{color:var(--muted);font-size:0.85rem;line-height:1.6;margin-bottom:1rem;}
.donation-amount-grid{display:flex;flex-wrap:wrap;gap:0.6rem;margin-bottom:0.9rem;}
.donation-amount-pill{
  padding:0.55rem 1.1rem;border-radius:20px;border:1.5px solid #e5d6a3;background:#fff;
  font-weight:700;font-size:0.85rem;color:var(--navy);cursor:pointer;transition:0.2s;
}
.donation-amount-pill:hover{border-color:#d4ae3f;}
.donation-amount-pill.selected{background:#f5c65c;border-color:#e0ab2f;color:#5a4109;}
.donation-box-hint{color:#a67c1e;font-size:0.78rem;font-style:italic;margin:0;}
.agree-row{
  display:flex;
  gap:0.8rem;
  align-items:flex-start;
  margin-top:1.5rem;
  font-size:0.82rem;
  color:var(--muted);
  line-height:1.6;
  cursor:pointer;
}
.agree-row input{margin-top:0.2rem;flex-shrink:0;width:16px;height:16px;}

/* review / summary */
.summary-box{background:var(--navy);color:#fff;border-radius:20px;padding:1.6rem 1.8rem;margin-bottom:0.5rem;}
.summary-box h3{font-family:'Playfair Display',serif;font-size:1.05rem;margin-bottom:1.1rem;}
.summary-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem;
  border-top:1px solid rgba(255,255,255,0.15);
  padding-top:1rem;
  margin-top:0.5rem;
}
.summary-grid:first-of-type{border-top:none;padding-top:0;margin-top:0;}
.rc-label-light{display:block;font-size:0.66rem;font-weight:700;letter-spacing:0.8px;text-transform:uppercase;color:#8fb0f5;margin-bottom:0.3rem;}
.summary-box strong{font-size:0.95rem;}

/* actions */
.wizard-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:2rem;
  gap:1rem;
}
.wizard-btn{
  display:inline-flex;
  align-items:center;
  gap:0.5rem;
  padding:0.85rem 1.6rem;
  border-radius:30px;
  font-weight:700;
  font-size:0.88rem;
  border:none;
  cursor:pointer;
  transition:0.2s;
}
.wizard-btn svg{width:15px;height:15px;}
.wizard-btn.primary{background:var(--blue);color:#fff;}
.wizard-btn.primary:hover{background:#2560d4;}
.wizard-btn.primary:disabled{background:#a9c2f7;cursor:not-allowed;}
.spinner-dot{
  display:inline-block;
  width:13px;
  height:13px;
  border-radius:50%;
  border:2px solid rgba(255,255,255,0.5);
  border-top-color:#fff;
  animation:spin-dot 0.7s linear infinite;
}
@keyframes spin-dot{to{transform:rotate(360deg);}}
.wizard-btn.ghost{background:#eef2fb;color:var(--ink);}
.wizard-btn.ghost:hover{background:#e2e9fa;}
.wizard-btn.dark{background:var(--navy);color:#fff;margin:0 auto;display:flex;}
.wizard-btn.dark:hover{background:#0a1330;}

/* received screen */
.wizard-received{
  background:#fff;
  border-radius:28px;
  padding:3rem 2.5rem;
  text-align:center;
  box-shadow:0 10px 25px rgba(15,27,61,0.05);
}
.received-icon{
  width:64px;
  height:64px;
  border-radius:50%;
  background:var(--blue);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 1.2rem;
}
.received-icon svg{width:30px;height:30px;}
.wizard-received h2{font-family:'Playfair Display',serif;color:var(--navy);font-size:1.6rem;margin-bottom:0.8rem;}
.wizard-received p{color:var(--muted);font-style:italic;font-size:0.9rem;max-width:440px;margin:0 auto 1.8rem;line-height:1.7;}
.reference-box{
  background:#eef2fb;
  border:1px dashed #b7c7f5;
  border-radius:20px;
  padding:1.5rem;
  max-width:420px;
  margin:0 auto 2rem;
}
.ref-label{display:block;font-size:0.68rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:0.6rem;}
.ref-id{
  background:#fff;
  border:1px solid #dde3f5;
  border-radius:14px;
  padding:0.9rem;
  font-family:'Playfair Display',serif;
  font-weight:700;
  color:var(--blue);
  font-size:1.15rem;
  letter-spacing:1px;
  word-break:break-all;
}
.ref-note{font-size:0.75rem;color:var(--muted);font-style:normal;margin-top:0.6rem;margin-bottom:0;}

.receipt-actions{max-width:420px;margin:0 auto 1.5rem;text-align:center;}
.receipt-notice{
  background:#fff5f8;
  border:1px solid #f7c9dc;
  color:#8a2c52;
  font-size:0.8rem;
  line-height:1.5;
  padding:0.8rem 1rem;
  border-radius:14px;
  margin-bottom:1rem;
}
.receipt-actions .wizard-btn{margin:0 auto;}

/* ===== FEEDBACK ===== */
.feedback-section{background:#f4f6fc;padding:4.5rem 2rem;}
.feedback-card{
  max-width:640px;
  margin:0 auto;
  background:#fff;
  border-radius:32px;
  padding:3rem 2.5rem;
  text-align:center;
  box-shadow:0 10px 30px rgba(15,27,61,0.06);
}
.feedback-card h2{font-family:'Playfair Display',serif;font-size:1.9rem;color:var(--navy);margin-bottom:0.6rem;}
.feedback-card > p{color:var(--muted);font-size:0.95rem;line-height:1.6;margin-bottom:1.8rem;}
.feedback-stars{display:flex;justify-content:center;gap:0.4rem;margin-bottom:1.4rem;}
.feedback-stars button{
  background:none;
  border:none;
  font-size:2rem;
  line-height:1;
  color:#dbe2f5;
  cursor:pointer;
  transition:0.15s;
  padding:0;
}
.feedback-stars button.filled{color:#f2b134;}
.feedback-card input,
.feedback-card textarea{
  width:100%;
  padding:0.85rem 1.1rem;
  border-radius:14px;
  border:1px solid #dde3f5;
  background:#f8f9fd;
  font-family:inherit;
  font-size:0.95rem;
  margin-bottom:1rem;
  outline:none;
}
.feedback-card textarea{resize:vertical;}
.feedback-card button[type="submit"]{
  background:var(--blue);
  color:#fff;
  border:none;
  padding:0.9rem 2rem;
  border-radius:30px;
  font-weight:700;
  font-size:0.92rem;
  cursor:pointer;
  transition:0.2s;
}
.feedback-card button[type="submit"]:hover{background:#2560d4;}
.feedback-thanks{color:var(--blue);font-weight:700;font-size:0.95rem;}

.wizard-feedback{
  margin-top:2rem;
  padding-top:2rem;
  padding-bottom:1rem;
  border-top:1px dashed #d9e2fa;
  border-bottom:1px dashed #d9e2fa;
}
.wf-label{color:var(--muted);font-size:0.85rem;font-weight:600;margin-bottom:0.8rem;}
.wizard-feedback textarea{
  width:100%;
  padding:0.75rem 1rem;
  border-radius:14px;
  border:1px solid #dde3f5;
  background:#f8f9fd;
  font-family:inherit;
  font-size:0.88rem;
  margin:0.9rem 0 1rem;
  resize:vertical;
  outline:none;
}
.wizard-btn.small{padding:0.6rem 1.3rem;font-size:0.8rem;margin:0 auto;display:flex;}
.wf-thanks{color:var(--blue);font-weight:700;font-size:0.88rem;margin-top:0.8rem;}
.wizard-feedback + .wizard-btn.dark{margin-top:1.2rem;}

/* ===== FLOATING CHAT ===== */
.chat-fab{
  position:fixed;
  bottom:28px;
  right:28px;
  width:58px;
  height:58px;
  border-radius:50%;
  background:var(--blue);
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 10px 25px rgba(47,111,237,0.5);
  cursor:pointer;
  z-index:100;
  transition:0.2s;
}
.chat-fab:hover{transform:scale(1.08);background:#2560d4;}
.chat-fab svg{width:24px;height:24px;fill:#fff;}
.chat-fab::before{
  content:'';
  position:absolute;
  inset:0;
  border-radius:50%;
  border:2px solid var(--blue);
  animation:chat-fab-pulse 2.4s ease-out infinite;
}
.chat-fab.open::before{display:none;}
@keyframes chat-fab-pulse{
  0%{transform:scale(1);opacity:0.7;}
  100%{transform:scale(1.6);opacity:0;}
}

/* ===== CHAT PANEL ===== */
.chat-panel{
  position:fixed;
  bottom:98px;
  right:28px;
  width:340px;
  max-width:calc(100vw - 40px);
  height:460px;
  max-height:calc(100vh - 140px);
  background:#fff;
  border-radius:24px;
  box-shadow:0 20px 50px rgba(15,27,61,0.3);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  z-index:101;
  opacity:0;
  transform-origin:bottom right;
  transform:translateY(16px) scale(0.92);
  pointer-events:none;
  transition:opacity 0.28s ease, transform 0.32s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.chat-panel.open{
  opacity:1;
  transform:translateY(0) scale(1);
  pointer-events:auto;
}
.chat-panel-header{
  background:linear-gradient(120deg, var(--navy), var(--blue));
  color:#fff;
  padding:1rem 1.1rem;
  display:flex;
  align-items:center;
  gap:0.7rem;
}
.chat-avatar{
  width:34px;
  height:34px;
  border-radius:50%;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  overflow:hidden;
}
.chat-avatar img{width:100%;height:100%;object-fit:contain;}
.chat-avatar svg{width:18px;height:18px;fill:var(--blue);}
.chat-panel-header h4{font-family:'Playfair Display',serif;font-size:0.98rem;}
.chat-panel-header p{font-size:0.65rem;letter-spacing:1px;text-transform:uppercase;opacity:0.85;}
.chat-close{
  margin-left:auto;
  background:none;
  border:none;
  color:#fff;
  font-size:1.3rem;
  line-height:1;
  cursor:pointer;
  opacity:0.85;
}
.chat-close:hover{opacity:1;}
.chat-messages{
  flex:1;
  overflow-y:auto;
  padding:1rem;
  background:#f6f8fd;
  display:flex;
  flex-direction:column;
  gap:0.6rem;
}
.chat-msg{
  max-width:82%;
  padding:0.65rem 0.9rem;
  border-radius:16px;
  font-size:0.87rem;
  line-height:1.5;
  white-space:pre-line;
}
.chat-msg.bot{
  background:#fff;
  color:var(--ink);
  align-self:flex-start;
  border:1px solid #e7ecf9;
  border-bottom-left-radius:4px;
}
.chat-msg.user{
  background:var(--blue);
  color:#fff;
  align-self:flex-end;
  border-bottom-right-radius:4px;
}
.chat-msg.chat-typing{display:flex;align-items:center;gap:4px;padding:0.8rem 1rem;}
.chat-msg.chat-typing span{
  width:6px;height:6px;border-radius:50%;background:var(--muted);
  animation:chat-typing-bounce 1.2s infinite ease-in-out;
}
.chat-msg.chat-typing span:nth-child(2){animation-delay:0.2s;}
.chat-msg.chat-typing span:nth-child(3){animation-delay:0.4s;}
@keyframes chat-typing-bounce{0%,60%,100%{transform:translateY(0);opacity:0.4;}30%{transform:translateY(-4px);opacity:1;}}
.chat-quick-replies{
  display:flex;
  flex-wrap:wrap;
  gap:0.5rem;
  padding:0 1rem 0.8rem;
  background:#f6f8fd;
}
.quick-reply{
  background:#fff;
  border:1px solid #d9e2fa;
  color:var(--blue);
  font-size:0.76rem;
  font-weight:600;
  padding:0.4rem 0.8rem;
  border-radius:20px;
  cursor:pointer;
  transition:0.2s;
}
.quick-reply:hover{background:#eef2fb;}
.chat-input-row{
  display:flex;
  gap:0.6rem;
  padding:0.8rem;
  border-top:1px solid #e7ecf9;
  background:#fff;
}
.chat-input-row input{
  flex:1;
  border:1px solid #dde3f5;
  background:#f6f8fd;
  border-radius:20px;
  padding:0.6rem 1rem;
  font-size:0.85rem;
  outline:none;
}
.chat-input-row button{
  width:38px;
  height:38px;
  border-radius:50%;
  background:var(--blue);
  border:none;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  flex-shrink:0;
}
.chat-input-row button svg{width:16px;height:16px;}
.chat-input-row button:hover{background:#2560d4;}

@media (max-width:900px){
  nav.main-nav{display:none;}
}

/* ===== LANGUAGE GATE (choose language before entering) ===== */
body.lang-gate-open{overflow:hidden;}
.lang-gate{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:1.5rem;
  background:linear-gradient(145deg,var(--navy),var(--navy-dark));
}
.lang-gate.hidden{display:none;}
.lang-gate-card{
  background:#fff;
  border-radius:20px;
  padding:2.5rem 2rem;
  max-width:440px;
  width:100%;
  text-align:center;
  box-shadow:0 30px 60px rgba(0,0,0,0.35);
}
.lang-gate-logo{
  width:56px;
  height:56px;
  margin:0 auto 1rem;
  border-radius:50%;
  background:#fff;
  border:1px solid #e7ecf9;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.lang-gate-logo svg{width:28px;height:28px;fill:var(--blue);}
.lang-gate-logo img{width:100%;height:100%;object-fit:contain;}
.lang-gate-card h2{
  font-family:'Playfair Display',serif;
  font-size:1.3rem;
  color:var(--ink);
  margin-bottom:0.6rem;
}
.lang-gate-card p{
  color:var(--muted);
  font-size:0.9rem;
  line-height:1.6;
  margin-bottom:1.6rem;
}
.lang-gate-actions{
  display:flex;
  gap:0.8rem;
}
.lang-gate-btn{
  flex:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0.3rem;
  padding:1rem 0.8rem;
  border:1.5px solid #dde3f5;
  border-radius:14px;
  background:#f6f8fd;
  cursor:pointer;
  transition:0.2s;
  font-family:inherit;
}
.lang-gate-btn:hover{border-color:var(--blue);background:#eef4ff;transform:translateY(-2px);}
.lang-gate-btn .flag{
  font-weight:700;
  font-size:1.05rem;
  color:var(--blue);
}
.lang-gate-btn .sub{
  font-size:0.72rem;
  color:var(--muted);
}

/* ===== LANGUAGE SWITCH (topbar toggle, always available) ===== */
.lang-switch{
  display:flex;
  align-items:center;
  gap:0.3rem;
  background:transparent;
  border:1px solid rgba(255,255,255,0.35);
  color:#dbe3fb;
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.5px;
  padding:0.25rem 0.6rem;
  border-radius:20px;
  cursor:pointer;
  font-family:inherit;
}
.lang-switch:hover{background:rgba(255,255,255,0.12);color:#fff;}
.lang-switch svg{width:12px;height:12px;flex-shrink:0;}

/* ===== CLIENT (PARISHIONER) SIGN-IN ===== */
.client-auth{position:relative;}
.btn-client{
  display:flex;
  align-items:center;
  gap:0.5rem;
  background:transparent;
  color:var(--navy);
  padding:0.58rem 1.2rem;
  border-radius:30px;
  font-weight:700;
  font-size:0.82rem;
  letter-spacing:0.5px;
  border:1.5px solid var(--navy);
  cursor:pointer;
  transition:0.2s;
  font-family:inherit;
}
.btn-client:hover{background:var(--navy);color:#fff;}
.btn-client svg{width:15px;height:15px;flex-shrink:0;}

.client-chip{
  display:flex;
  align-items:center;
  gap:0.5rem;
  background:#eef2fb;
  border:1px solid #dde3f5;
  padding:0.4rem 0.7rem 0.4rem 0.4rem;
  border-radius:30px;
  cursor:pointer;
  position:relative;
  user-select:none;
}
.client-chip-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;}
.client-chip-avatar.hidden{display:none;}
.client-chip-name{font-weight:700;font-size:0.85rem;color:var(--navy);max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.chip-caret{width:14px;height:14px;color:var(--muted);transition:0.2s;flex-shrink:0;}
.client-chip.open .chip-caret{transform:rotate(180deg);}
.client-dropdown{
  display:none;
  position:absolute;
  top:calc(100% + 10px);
  right:0;
  background:#fff;
  border-radius:16px;
  box-shadow:0 20px 40px rgba(15,27,61,0.18);
  min-width:180px;
  padding:0.5rem;
  z-index:60;
}
.client-chip.open .client-dropdown{display:block;}
.client-dropdown a, .client-dropdown button{
  display:block;
  width:100%;
  text-align:left;
  padding:0.7rem 0.8rem;
  border-radius:10px;
  border:none;
  background:none;
  font-size:0.85rem;
  font-weight:600;
  color:var(--ink);
  cursor:pointer;
  font-family:inherit;
}
.client-dropdown a:hover, .client-dropdown button:hover{background:#f4f6fc;}
.client-dropdown .client-logout-btn{color:var(--pink);}

/* ---- Modal (shared shell used by client sign-in) ---- */
.modal-overlay{
  position:fixed;
  inset:0;
  background:rgba(10,19,48,0.55);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:500;
  padding:1.5rem;
}
.modal-box{
  background:#fff;
  border-radius:28px;
  width:100%;
  max-width:560px;
  max-height:90vh;
  overflow-y:auto;
  padding:2rem;
  position:relative;
}
.modal-box.small{max-width:420px;}
.modal-close{
  position:absolute;
  top:1.2rem;
  right:1.2rem;
  background:none;
  border:none;
  font-size:1.6rem;
  line-height:1;
  color:var(--muted);
  cursor:pointer;
  z-index:2;
}

.client-modal-top{
  background:linear-gradient(135deg, var(--blue), #4a7bf0);
  padding:2.2rem 1.8rem 1.8rem;
  text-align:center;
  color:#fff;
  border-radius:20px;
  margin:-2rem -2rem 1.5rem;
}
.client-modal-top .login-shield{
  width:52px;height:52px;margin:0 auto 0.9rem;border-radius:16px;
  background:rgba(255,255,255,0.2);display:flex;align-items:center;justify-content:center;
}
.client-modal-top .login-shield svg{width:24px;height:24px;stroke:#fff;}
.client-modal-top h2{font-family:'Playfair Display',serif;font-size:1.3rem;}
.client-modal-top p{font-size:0.82rem;opacity:0.92;margin-top:0.5rem;line-height:1.5;}

.google-btn-container{display:flex;justify-content:center;min-height:44px;margin-bottom:0.5rem;}
.client-auth-note{font-size:0.8rem;color:var(--muted);text-align:center;min-height:1em;margin-bottom:0.5rem;}

.client-testmode{margin-top:1.2rem;padding-top:1.2rem;border-top:1px dashed #dde3f5;}
.client-testmode-label{font-size:0.72rem;font-weight:700;letter-spacing:0.8px;text-transform:uppercase;color:var(--muted);margin-bottom:0.8rem;text-align:center;}
.client-testmode-form{display:flex;flex-direction:column;gap:0.7rem;}
.client-testmode-form input{
  width:100%;
  padding:0.75rem 1rem;
  border-radius:14px;
  border:1px solid #dde3f5;
  background:#f8f9fd;
  font-size:0.9rem;
  outline:none;
  font-family:inherit;
}
.client-testmode-form input:focus{border-color:var(--blue);}
.client-testmode-form button{
  background:var(--navy);
  color:#fff;
  border:none;
  padding:0.8rem;
  border-radius:30px;
  font-weight:700;
  cursor:pointer;
  font-family:inherit;
}
.client-testmode-form button:hover{background:var(--navy-dark);}

/* ---- My Requests (services.html) ---- */
.my-requests-banner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  background:#eef4ff;
  border:1px solid #cddcff;
  border-radius:20px;
  padding:1rem 1.4rem;
  margin-bottom:1.5rem;
  flex-wrap:wrap;
}
.my-requests-banner p{font-size:0.88rem;color:var(--navy);font-weight:600;}
.my-requests-banner button{
  background:var(--blue);
  color:#fff;
  border:none;
  padding:0.6rem 1.2rem;
  border-radius:30px;
  font-weight:700;
  font-size:0.82rem;
  cursor:pointer;
  font-family:inherit;
  white-space:nowrap;
}
.my-requests-list{display:flex;flex-direction:column;gap:0.9rem;margin-bottom:2rem;}
.my-request-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  background:#fff;
  border:1px solid #e7ecf9;
  border-radius:16px;
  padding:1rem 1.3rem;
  flex-wrap:wrap;
  cursor:pointer;
  transition:box-shadow 0.2s ease, border-color 0.2s ease;
  position:relative;
}
.my-request-card:hover{box-shadow:0 8px 20px rgba(15,27,61,0.08);border-color:#d6e0f7;}
.my-request-card.open{border-color:var(--blue);}
.my-request-card .mr-info strong{display:block;color:var(--navy);font-size:0.92rem;}
.my-request-card .mr-info span{display:block;font-size:0.78rem;color:var(--muted);margin-top:0.2rem;}
.my-request-card .mr-chevron{width:18px;height:18px;color:var(--muted);transition:transform 0.2s ease;flex-shrink:0;}
.my-request-card.open .mr-chevron{transform:rotate(180deg);color:var(--blue);}
.my-request-card .mr-detail{
  flex-basis:100%;width:100%;margin-top:0.8rem;padding-top:0.8rem;border-top:1px dashed #e7ecf9;
  display:flex;flex-direction:column;gap:0.5rem;cursor:default;
}
.mr-detail-loading{display:flex;align-items:center;gap:0.5rem;color:var(--muted);font-size:0.85rem;padding:0.4rem 0;}
.mr-detail-row{display:flex;justify-content:space-between;font-size:0.85rem;color:var(--navy);}
.mr-detail-row span{color:var(--muted);}
.mr-detail-response{background:#f7f9fd;border-radius:10px;padding:0.7rem 0.9rem;font-size:0.85rem;}
.mr-detail-response span{display:block;font-weight:700;color:var(--navy);margin-bottom:0.3rem;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.4px;}
.mr-detail-response.muted span{color:var(--muted);font-weight:400;text-transform:none;letter-spacing:normal;}
.mr-detail-response p{margin:0;color:var(--muted);white-space:pre-wrap;}

/* Skeleton loading state */
.my-request-card.skeleton{cursor:default;}
.my-request-card.skeleton:hover{box-shadow:none;border-color:#e7ecf9;}
.skel-line{display:block;height:10px;border-radius:6px;background:linear-gradient(90deg,#eef1f8 25%,#f6f8fc 37%,#eef1f8 63%);background-size:400% 100%;animation:skel-shimmer 1.4s ease infinite;margin-bottom:0.5rem;}
.skel-line.w70{width:70%;height:12px;}
.skel-line.w40{width:40%;}
.skel-pill{display:block;width:70px;height:22px;border-radius:20px;background:linear-gradient(90deg,#eef1f8 25%,#f6f8fc 37%,#eef1f8 63%);background-size:400% 100%;animation:skel-shimmer 1.4s ease infinite;}
@keyframes skel-shimmer{0%{background-position:100% 50%;}100%{background-position:0 50%;}}

.mr-status{
  padding:0.3rem 0.8rem;
  border-radius:20px;
  font-size:0.72rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.5px;
  white-space:nowrap;
}
.mr-status.pending{background:#fff3cd;color:#946200;}
.mr-status.received{background:#dbe9ff;color:#1c4fa8;}
.mr-status.confirmed, .mr-status.ready{background:#dcf7e3;color:#1f7a3d;}
.mr-status.rejected{background:#fde3ea;color:#a02155;}
.my-requests-empty{
  text-align:center;
  color:var(--muted);
  font-size:0.9rem;
  padding:2rem 1rem;
  background:#f8f9fd;
  border-radius:16px;
  margin-bottom:2rem;
}

/* ===== LOGIN GATE (Admin / Parishioner) ===== */
.login-gate{
  position:fixed;
  inset:0;
  z-index:9000;
  background:
    radial-gradient(ellipse at 30% 20%, rgba(91,141,240,0.35), transparent 55%),
    linear-gradient(160deg, #16255c 0%, #1c3f91 100%);
  background-size:100% 100%, 200% 200%;
  animation: olhrp-gate-glow 12s ease-in-out infinite;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:2rem;
  overflow-y:auto;
}
@keyframes olhrp-gate-glow{
  0%, 100%{background-position:30% 20%, 0% 50%;}
  50%{background-position:70% 40%, 100% 50%;}
}
.login-gate.hidden{display:none;}
.login-gate-card{
  width:100%;
  max-width:440px;
  background:#fff;
  border-radius:32px;
  overflow:hidden;
  box-shadow:0 30px 60px rgba(0,0,0,0.35);
  margin:auto;
  animation: olhrp-gate-card-in 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes olhrp-gate-card-in{
  from{opacity:0;transform:translateY(24px) scale(0.97);}
  to{opacity:1;transform:translateY(0) scale(1);}
}
.login-gate-logo{width:64px;height:64px;margin:2rem auto 0.5rem;border-radius:50%;overflow:hidden;animation:olhrp-logo-float 3.5s ease-in-out infinite;}
.login-gate-logo img{width:100%;height:100%;object-fit:cover;}
@keyframes olhrp-logo-float{
  0%, 100%{transform:translateY(0);}
  50%{transform:translateY(-5px);}
}
.login-gate-card h2{font-family:'Playfair Display',serif;text-align:center;font-size:1.4rem;color:var(--navy);margin-top:0.5rem;}
.login-gate-card > p{text-align:center;color:var(--muted);font-size:0.85rem;padding:0 2rem;margin:0.4rem 0 1.4rem;}
#lgClientPanel, #lgStaffPanel, .lg-subpanel{animation: olhrp-fade-up 0.3s ease both;}

/* OTP code input: subtle focus glow + letter-spacing for readability */
#priestOtpCode, #soccomOtpCode, #otpCode{
  letter-spacing:6px;font-weight:700;font-size:1.15rem;text-align:center;
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}
#priestOtpCode:focus, #soccomOtpCode:focus, #otpCode:focus{
  box-shadow:0 0 0 4px rgba(47,111,237,0.15);
  border-color:var(--blue);
}

.login-gate-tabs{display:flex;margin:0 2rem 1.4rem;background:#eef2fb;border-radius:16px;padding:0.3rem;gap:0.3rem;}
.lg-tab{
  flex:1;
  background:none;
  border:none;
  padding:0.65rem 0.5rem;
  border-radius:12px;
  font-weight:700;
  font-size:0.82rem;
  color:var(--muted);
  cursor:pointer;
  font-family:inherit;
  transition:0.2s;
}
.lg-tab.active{background:#fff;color:var(--navy);box-shadow:0 4px 10px rgba(15,27,61,0.12);}

.login-gate-subtabs{display:flex;margin:0 0 1.4rem;background:#f4f6fb;border-radius:12px;padding:0.25rem;gap:0.25rem;}
.lg-subtab{
  flex:1;background:none;border:none;padding:0.5rem 0.4rem;border-radius:9px;
  font-weight:600;font-size:0.76rem;color:var(--muted);cursor:pointer;font-family:inherit;
  transition:0.2s;
}
.lg-subtab.active{background:#fff;color:var(--blue);box-shadow:0 3px 8px rgba(15,27,61,0.1);}

.lg-panel{padding:0 2rem 2.2rem;}
.lg-subpanel{}
.lg-panel.hidden{display:none;}
.lg-panel-desc{font-size:0.85rem;color:var(--muted);text-align:center;margin-bottom:1.2rem;line-height:1.5;}

.lg-panel form label{
  display:block;
  font-size:0.7rem;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:0.5rem;
  margin-top:1rem;
}
.lg-panel .input-icon{position:relative;}
.lg-panel .input-icon svg{position:absolute;left:1rem;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--muted);}
.lg-panel .input-icon input{padding-left:2.6rem;}
.lg-panel input{
  width:100%;
  padding:0.8rem 1rem;
  border-radius:14px;
  border:1px solid #dde3f5;
  background:#f8f9fd;
  font-size:0.95rem;
  outline:none;
  font-family:inherit;
}
.lg-panel input:focus{border-color:var(--blue);}
.login-error{color:var(--pink);font-size:0.8rem;min-height:1.1em;margin-top:0.6rem;}
.unlock-btn{
  width:100%;
  margin-top:1.2rem;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0.6rem;
  background:var(--navy);
  color:#fff;
  border:none;
  padding:0.9rem;
  border-radius:30px;
  font-weight:700;
  cursor:pointer;
  font-family:inherit;
}
.unlock-btn:hover{background:var(--navy-dark);}
.unlock-btn svg{width:16px;height:16px;stroke:#fff;}
.setup-link{
  display:block;
  margin:1rem auto 0;
  background:none;
  border:none;
  color:var(--blue);
  font-size:0.8rem;
  font-weight:700;
  cursor:pointer;
  text-align:center;
  width:100%;
  font-family:inherit;
}
.setup-hint{font-size:0.78rem;color:var(--muted);text-align:center;margin-top:0.6rem;}

/* ===== GLOBAL ACCOUNT CHIP (app header, replaces per-page sign-in button) ===== */
.account-chip{
  display:flex;
  align-items:center;
  gap:0.35rem;
  background:#eef2fb;
  border:1px solid #dde3f5;
  padding:0.35rem 0.6rem 0.35rem 0.35rem;
  border-radius:30px;
  cursor:pointer;
  position:relative;
  user-select:none;
  flex-shrink:0;
}
.account-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;}
.account-avatar.hidden{display:none;}
.account-avatar-fallback{
  width:32px;height:32px;border-radius:50%;
  background:var(--blue);color:#fff;font-weight:700;font-size:0.85rem;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.account-avatar-fallback.hidden{display:none;}
.account-chip .chip-caret{width:14px;height:14px;color:var(--muted);transition:0.2s;flex-shrink:0;}
.account-chip.open .chip-caret{transform:rotate(180deg);}
.account-chip .client-dropdown{
  display:none;
  position:absolute;
  top:calc(100% + 10px);
  right:0;
  background:#fff;
  border-radius:16px;
  box-shadow:0 20px 40px rgba(15,27,61,0.18);
  min-width:210px;
  padding:0.5rem;
  z-index:60;
}
.account-chip.open .client-dropdown{display:block;}
.client-dropdown-header{
  padding:0.6rem 0.8rem 0.7rem;
  border-bottom:1px solid #eef1f8;
  margin-bottom:0.4rem;
  display:flex;
  flex-direction:column;
  gap:0.15rem;
}
.client-dropdown-header .account-name{
  font-weight:700;font-size:0.85rem;color:var(--navy);
  overflow-wrap:break-word;word-break:break-word;line-height:1.3;
}
.client-dropdown-header .account-role{font-size:0.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:0.5px;}
.account-chip .client-dropdown button{
  display:block;width:100%;text-align:left;padding:0.7rem 0.8rem;border-radius:10px;
  border:none;background:none;font-size:0.85rem;font-weight:600;color:var(--pink);cursor:pointer;font-family:inherit;
}
.account-chip .client-dropdown button:hover{background:#fde3ea;}

/* ===== ROLE-GATED NAV ITEMS ===== */
.nav-client-only.hidden, .nav-admin-only.hidden{display:none;}

/* ===== APP SHELL / SPA VIEWS ===== */
#appShell.hidden{display:none;}
.app-view.hidden{display:none;}

/* ===== CLIENT DASHBOARD ===== */
.dashboard-profile-card{
  display:flex;
  align-items:center;
  gap:1.2rem;
  background:#fff;
  border:1px solid #e7ecf9;
  border-radius:24px;
  padding:1.6rem 1.8rem;
  box-shadow:0 20px 40px rgba(15,27,61,0.08);
  margin-bottom:1.8rem;
}
.dashboard-avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;flex-shrink:0;}
.dashboard-avatar.hidden{display:none;}
.dashboard-avatar-fallback{
  width:64px;height:64px;border-radius:50%;background:var(--blue);color:#fff;
  font-weight:700;font-size:1.6rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.dashboard-avatar-fallback.hidden{display:none;}
.dashboard-profile-card strong{display:block;font-size:1.1rem;color:var(--navy);font-family:'Playfair Display',serif;}
.dashboard-profile-card span{display:block;font-size:0.85rem;color:var(--muted);margin-top:0.2rem;}

.dashboard-quicklinks{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px,1fr));
  gap:1rem;
  margin-bottom:2.2rem;
}
.dashboard-quicklinks button{
  display:flex;
  align-items:center;
  gap:0.7rem;
  background:#fff;
  border:1px solid #e7ecf9;
  border-radius:16px;
  padding:1rem 1.2rem;
  font-weight:700;
  font-size:0.85rem;
  color:var(--navy);
  cursor:pointer;
  font-family:inherit;
  transition:0.2s;
}
.dashboard-quicklinks button:hover{border-color:var(--blue);transform:translateY(-2px);}
.dashboard-quicklinks button svg{width:20px;height:20px;color:var(--blue);flex-shrink:0;}

.dashboard-section-heading{font-family:'Playfair Display',serif;font-size:1.3rem;color:var(--navy);margin-bottom:1rem;}

/* My Requests list (also used by Client Dashboard) — styles defined above */
.my-requests-list{display:flex;flex-direction:column;gap:0.9rem;margin-bottom:2rem;}
.mr-status.received{background:#dbe9ff;color:#1c4fa8;}
.mr-status.confirmed, .mr-status.ready{background:#dcf7e3;color:#1f7a3d;}
.mr-status.rejected{background:#fde3ea;color:#a02155;}
.my-requests-empty{text-align:center;color:var(--muted);font-size:0.9rem;padding:2rem 1rem;background:#f8f9fd;border-radius:16px;margin-bottom:2rem;}

/* Admin-role note shown on Services when browsing outside the client role */
.role-note{
  background:#fff5f8;border:1px solid #f7c9dc;color:#8a2c52;
  padding:1rem 1.3rem;border-radius:16px;font-size:0.85rem;margin-bottom:1.5rem;
}

/* ===== OTP VERIFICATION STEP (Admin login) ===== */
#otpForm{margin-top:0.5rem;}
.otp-desc{font-size:0.85rem;color:var(--muted);line-height:1.5;margin-bottom:1rem;}
.otp-desc strong{color:var(--navy);}
#otpCode{letter-spacing:6px;font-size:1.1rem;font-weight:700;text-align:center;padding-left:1rem !important;}
.otp-devnote{font-size:0.75rem;color:var(--blue);background:#eef4ff;border-radius:10px;padding:0.6rem 0.8rem;margin-top:0.4rem;line-height:1.4;}
.otp-devnote:empty{display:none;}
.otp-links{display:flex;justify-content:space-between;margin-top:0.8rem;}
.otp-links .setup-link{width:auto;margin:0;}

/* ===== CLIENT GMAIL + OTP LOGIN FORM ===== */
.gmail-badge{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0.6rem;
  background:#f8f9fd;
  border:1.5px solid #e7ecf9;
  border-radius:14px;
  padding:0.9rem;
  margin-bottom:1.2rem;
  font-weight:700;
  font-size:0.9rem;
  color:var(--navy);
}
.client-gmail-form label{
  display:block;
  font-size:0.7rem;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:0.5rem;
  margin-top:1rem;
}

/* ===== DYNAMIC EVENTS PAGE ===== */
.events-loading{text-align:center;color:var(--muted);padding:3rem 1rem;font-size:0.95rem;}
.photo-placeholder{background:linear-gradient(135deg, var(--blue), var(--navy));}

/* ===== TAB, LOGIN & LOADING ANIMATIONS ===== */

/* -- Page/tab switching: fade + slide up whenever a view becomes visible -- */
@keyframes viewEnter{
  from{opacity:0;transform:translateY(14px);}
  to{opacity:1;transform:translateY(0);}
}
.app-view.view-enter{animation:viewEnter 0.45s cubic-bezier(0.22,1,0.36,1);}

/* -- Nav pills: smoother hover/active feel + a little pop when a tab becomes active -- */
nav.main-nav a{
  position:relative;
  transition:background 0.25s ease, color 0.25s ease, transform 0.15s ease;
}
nav.main-nav a:hover{background:#eef2fd;transform:translateY(-1px);}
nav.main-nav a:active{transform:translateY(0) scale(0.97);}
@keyframes navPop{
  0%{transform:scale(0.9);}
  60%{transform:scale(1.05);}
  100%{transform:scale(1);}
}
nav.main-nav a.active{animation:navPop 0.3s ease;}

/* -- Login gate: fade the whole overlay in, pop the card in -- */
@keyframes gateFade{from{opacity:0;}to{opacity:1;}}
@keyframes cardPop{
  from{opacity:0;transform:translateY(24px) scale(0.96);}
  to{opacity:1;transform:translateY(0) scale(1);}
}
.login-gate:not(.hidden){animation:gateFade 0.3s ease;}
.login-gate:not(.hidden) .login-gate-card{animation:cardPop 0.4s cubic-bezier(0.22,1,0.36,1);}
.lang-gate:not(.hidden){animation:gateFade 0.3s ease;}
.lang-gate:not(.hidden) .lang-gate-card{animation:cardPop 0.4s cubic-bezier(0.22,1,0.36,1);}

/* -- Login tabs (Parishioner / Parish Staff): sliding highlight already handled by
      .lg-tab.active background — just make the swap feel smoother -- */
.lg-tab{transition:background 0.25s ease, color 0.25s ease, box-shadow 0.25s ease, transform 0.15s ease;}
.lg-tab:active{transform:scale(0.96);}
.lg-panel:not(.hidden){animation:gateFade 0.35s ease;}

/* -- Form step swap (request -> OTP code step) fades + slides in -- */
#clientRequestForm:not(.hidden),
#clientOtpForm:not(.hidden),
#loginForm:not(.hidden),
#otpForm:not(.hidden){animation:formStepIn 0.35s cubic-bezier(0.22,1,0.36,1);}
@keyframes formStepIn{
  from{opacity:0;transform:translateX(10px);}
  to{opacity:1;transform:translateX(0);}
}

/* -- Buttons that send a code / submit a form: loading + press feedback -- */
.unlock-btn{transition:background 0.2s ease, transform 0.15s ease, opacity 0.2s ease;}
.unlock-btn:active{transform:scale(0.98);}
.unlock-btn:disabled,
.unlock-btn.is-loading{opacity:0.75;cursor:not-allowed;}
.unlock-btn .spinner-dot{margin-right:0.2rem;}

/* Generic small spinner reused anywhere a request is in flight (buttons, links) */
.btn-spinner{
  display:inline-block;
  width:14px;
  height:14px;
  border-radius:50%;
  border:2px solid rgba(255,255,255,0.45);
  border-top-color:#fff;
  animation:spin-dot 0.7s linear infinite;
  vertical-align:-2px;
  margin-right:0.45rem;
}
/* dark-text buttons (e.g. ghost/setup links) need a dark spinner variant */
.btn-spinner.dark{border-color:rgba(15,27,61,0.25);border-top-color:var(--navy);}

.setup-link{transition:opacity 0.2s ease;}
.setup-link:disabled{opacity:0.6;cursor:not-allowed;}

/* Subtle shake on login error so the red message doesn't just pop in silently */
@keyframes shakeError{
  0%,100%{transform:translateX(0);}
  20%{transform:translateX(-6px);}
  40%{transform:translateX(6px);}
  60%{transform:translateX(-4px);}
  80%{transform:translateX(4px);}
}
.login-error.shake{animation:shakeError 0.4s ease;}

/* ===== CHAPEL DETAIL MODAL ===== */
.chapel-modal-box{max-width:520px;padding:0;overflow:hidden;}
.chapel-modal-box-fancy{
  max-width:560px;
  box-shadow:0 30px 80px rgba(15,27,61,0.45);
  border:1px solid rgba(255,255,255,0.6);
}
.chapel-modal-box .modal-close{
  background:rgba(15,27,61,0.55);
  color:#fff;
  width:32px;
  height:32px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  top:1rem;
  right:1rem;
  z-index:2;
}
.chapel-modal-photo{
  width:100%;
  height:240px;
  background-size:cover;
  background-position:center;
  background-color:#e7ecf9;
  position:relative;
  cursor:zoom-in;
}
.chapel-modal-photo-gradient{
  position:absolute;
  inset:0;
  background:linear-gradient(to top, rgba(10,20,50,0.75) 0%, rgba(10,20,50,0.05) 45%, transparent 65%);
}
.chapel-modal-zoom-hint{
  position:absolute;
  top:1rem;
  left:1rem;
  width:34px;
  height:34px;
  border-radius:50%;
  background:rgba(255,255,255,0.9);
  color:var(--navy);
  display:flex;
  align-items:center;
  justify-content:center;
  transition:0.2s;
}
.chapel-modal-photo:hover .chapel-modal-zoom-hint{background:#fff;transform:scale(1.08);}
.chapel-modal-patron-badge{
  position:absolute;
  left:1rem;
  bottom:1rem;
  display:flex;
  align-items:center;
  gap:0.5rem;
  background:rgba(15,27,61,0.72);
  backdrop-filter:blur(4px);
  color:#fff;
  font-size:0.8rem;
  font-weight:600;
  padding:0.5rem 0.9rem;
  border-radius:20px;
  max-width:calc(100% - 5rem);
}
.chapel-modal-patron-badge svg{width:15px;height:15px;flex-shrink:0;color:#f5c65c;}
.chapel-modal-body{padding:1.8rem 2rem 2.2rem;position:relative;}
.chapel-modal-eyebrow{
  display:block;
  font-size:0.68rem;
  font-weight:700;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--blue);
  margin-bottom:0.4rem;
}
.chapel-modal-body h2{font-family:'Playfair Display',serif;color:var(--navy);font-size:1.55rem;margin-bottom:0.4rem;}
.chapel-modal-location{display:flex;align-items:center;gap:0.4rem;color:var(--muted);font-size:0.9rem;margin-bottom:1.2rem;}
.chapel-modal-location svg{width:15px;height:15px;flex-shrink:0;color:var(--blue);}

.chapel-modal-tabs{display:flex;gap:0.4rem;background:#f1f4fb;border-radius:12px;padding:0.3rem;margin-bottom:1.2rem;}
.cm-tab{
  flex:1;background:none;border:none;padding:0.55rem 0.5rem;border-radius:9px;
  font-weight:700;font-size:0.85rem;color:var(--muted);cursor:pointer;font-family:inherit;transition:0.2s;
  display:flex;align-items:center;justify-content:center;gap:0.4rem;
}
.cm-tab svg{flex-shrink:0;}
.cm-tab.active{background:#fff;color:var(--blue);box-shadow:0 3px 8px rgba(15,27,61,0.1);}
.cm-tab-panel{min-height:60px;position:relative;}
.chapel-modal-history-quote{
  position:absolute;
  top:-1.3rem;
  left:-0.4rem;
  font-family:'Playfair Display',serif;
  font-size:4.5rem;
  color:#e4eaf9;
  line-height:1;
  z-index:0;
  user-select:none;
  pointer-events:none;
}
.chapel-modal-history{position:relative;z-index:1;color:var(--muted);line-height:1.8;font-size:0.92rem;white-space:pre-line;max-height:280px;overflow-y:auto;padding-top:0.3rem;}
.chapel-modal-map{border-radius:16px;overflow:hidden;}

/* ===== Full-photo lightbox ===== */
.chapel-lightbox{
  position:fixed;inset:0;z-index:9999;
  background:rgba(8,14,32,0.94);
  display:flex;align-items:center;justify-content:center;
  padding:3rem 2rem;
  animation:cl-fade-in 0.2s ease;
}
.chapel-lightbox.hidden{display:none;}
@keyframes cl-fade-in{from{opacity:0;}to{opacity:1;}}
.chapel-lightbox img{
  max-width:100%;max-height:100%;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,0.5);
}
.chapel-lightbox-close{
  position:absolute;top:1.5rem;right:1.5rem;
  width:42px;height:42px;border-radius:50%;
  background:rgba(255,255,255,0.12);color:#fff;border:none;
  font-size:1.6rem;cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:0.2s;
}
.chapel-lightbox-close:hover{background:rgba(255,255,255,0.25);}

/* Cards are now clickable — give them the same tactile hover as service cards */
.chapel-card2{cursor:pointer;transition:transform 0.2s ease, box-shadow 0.2s ease;}
.chapel-card2:hover{transform:translateY(-4px);box-shadow:0 16px 28px rgba(15,27,61,0.12);}

/* ===== MASS SCHEDULE MODAL (public, view-only) ===== */
.mass-schedule-modal-box{max-width:560px;max-height:80vh;overflow-y:auto;padding:2.2rem;}
.mass-schedule-list{margin-top:1.2rem;display:flex;flex-direction:column;gap:1.8rem;}
.mass-schedule-category .msc-heading{
  font-family:'Playfair Display',serif;font-size:1.15rem;color:var(--blue);margin-bottom:1rem;
  padding-bottom:0.5rem;border-bottom:2px solid #e7ecf9;
}
.mass-schedule-category .mass-schedule-day{margin-bottom:1rem;}
.mass-schedule-category .mass-schedule-day:last-child{margin-bottom:0;}
.mass-schedule-day h4{font-family:'Playfair Display',serif;font-size:1.05rem;color:var(--navy);margin-bottom:0.5rem;border-bottom:1px solid #eef1f8;padding-bottom:0.4rem;}
.mass-schedule-rows{display:flex;flex-direction:column;gap:0.4rem;}
.mass-schedule-row{display:flex;justify-content:space-between;align-items:center;background:#f7f9fd;border-radius:10px;padding:0.6rem 0.9rem;font-size:0.9rem;}
.mass-schedule-row .msr-time{font-weight:700;color:var(--blue);}
.mass-schedule-row .msr-chapel{color:var(--muted);}

/* ===== small form helper styles (Mass Intention wizard) ===== */
.field-optional-note{color:var(--muted);font-weight:400;font-size:0.78rem;}
.wizard-checkbox-row{display:flex;align-items:center;gap:0.6rem;margin:0.7rem 0 1.2rem;font-size:0.9rem;color:var(--navy);cursor:pointer;}
.wizard-checkbox-row input[type="checkbox"]{width:18px;height:18px;accent-color:var(--blue);cursor:pointer;}

/* ===== Mass Intention: Donation step (payment card + proof upload) ===== */
.wizard-divider{border:none;border-top:1px dashed #e0e6f5;margin:1.6rem 0;}
.donation-payment-card{margin:1.2rem 0 1.6rem;}
.donation-qr-generate-wrap{margin:0.5rem 0 1rem;}
.donation-generate-qr-btn{cursor:pointer;display:inline-flex;align-items:center;gap:0.6rem;}
.donation-generate-qr-btn:disabled{opacity:0.7;cursor:default;}

/* ===== Sacraments wizard: option list with description ===== */
.sacrament-option-list{display:flex;flex-direction:column;gap:0.8rem;margin-top:1rem;}
.sacrament-option{
  text-align:left;padding:1.1rem 1.3rem;border:2px solid #e7ecf9;border-radius:14px;background:#fff;
  cursor:pointer;transition:0.2s;display:flex;flex-direction:column;gap:0.3rem;
}
.sacrament-option:hover{border-color:#c7d3f2;background:#f9fafd;}
.sacrament-option.selected{border-color:var(--blue);background:#f0f5ff;}
.sacrament-option strong{font-family:'Playfair Display',serif;font-size:1.05rem;color:var(--navy);}
.sacrament-option span{font-size:0.85rem;color:var(--muted);line-height:1.5;}

/* ===== Banal na Orden: Vocations mula Maysan (priests + seminarians) ===== */
.orders-vocations-wrap{
  display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin-bottom:1.6rem;
}
.orders-vocations-col{
  background:#f7f9fd;border-radius:14px;padding:1.2rem 1.3rem;
}
.orders-vocations-col h4{font-family:'Playfair Display',serif;font-size:0.98rem;color:var(--navy);margin-bottom:0.7rem;}
.orders-vocations-list{list-style:none;padding:0;margin:0;}
.orders-vocations-list li{
  font-size:0.85rem;color:var(--navy);padding:0.5rem 0;border-bottom:1px solid #e7ecf9;
}
.orders-vocations-list li:last-child{border-bottom:none;}
.orders-vocations-list li span{display:block;font-size:0.76rem;color:var(--muted);margin-top:0.1rem;}
@media (max-width:600px){.orders-vocations-wrap{grid-template-columns:1fr;}}

/* ===== Holy Orders: requirements checklist ===== */
.orders-requirements-box{margin:1.2rem 0;}
.orders-checklist{
  list-style:none;padding:0;margin:0;counter-reset:orders-counter;
}
.orders-checklist li{
  counter-increment:orders-counter;
  display:flex;align-items:flex-start;gap:0.9rem;
  padding:0.85rem 1rem;border:1px solid #e7ecf9;border-radius:12px;background:#fff;
  margin-bottom:0.6rem;font-size:0.9rem;color:var(--navy);line-height:1.5;
}
.orders-checklist li::before{
  content:counter(orders-counter);
  flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--blue);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:0.8rem;font-weight:700;
}
.donation-payment-loading, .donation-payment-empty{
  padding:1rem 1.2rem;background:#f7f9fd;border-radius:12px;color:var(--muted);font-size:0.85rem;
}
.donation-payment-grid{
  display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap;
  background:#f7f9fd;border:1px solid #e7ecf9;border-radius:16px;padding:1.4rem;
}
.donation-qr-wrap{display:flex;flex-direction:column;align-items:center;gap:0.5rem;flex-shrink:0;}
.donation-qr-wrap img{width:140px;height:140px;object-fit:contain;background:#fff;border-radius:12px;padding:0.5rem;border:1px solid #e7ecf9;}
.donation-qr-wrap span{font-size:0.72rem;color:var(--muted);text-align:center;max-width:150px;}
.donation-payment-details{flex:1;min-width:200px;display:flex;flex-direction:column;gap:0.7rem;}
.dp-row{display:flex;flex-direction:column;gap:0.15rem;}
.dp-row strong{font-size:0.78rem;text-transform:uppercase;letter-spacing:0.5px;color:var(--blue);}
.dp-row span{font-size:0.95rem;color:var(--navy);font-weight:600;}
.donation-proof-section{margin-top:0.5rem;}
.donation-proof-row{display:flex;align-items:center;gap:0.8rem;flex-wrap:wrap;margin-top:0.6rem;}
.donation-proof-upload-btn{cursor:pointer;display:inline-flex;align-items:center;gap:0.5rem;}
.donation-proof-filename{font-size:0.85rem;color:var(--muted);}
/* ================= ATING MGA PARI (Vocations page) ================= */
.vocations-cta-section{padding:1rem 2rem 4.5rem;display:flex;justify-content:center;}
.vocations-cta-box{
  max-width:720px;width:100%;text-align:center;
  background:linear-gradient(135deg, var(--navy) 0%, var(--navy-dark) 100%);
  border-radius:20px;padding:2.8rem 2.2rem;color:#fff;
  box-shadow:0 18px 40px rgba(15,27,61,0.25);
}
.vocations-cta-box h2{font-family:'Playfair Display',serif;font-size:1.6rem;margin-bottom:0.8rem;}
.vocations-cta-box p{color:rgba(255,255,255,0.78);line-height:1.7;margin-bottom:1.6rem;}
.vocations-cta-box .btn{margin:0 auto;}

/* ================= DONATION AMOUNT: professional custom-amount input ================= */
.donation-amount-custom-wrap{margin-bottom:1rem;}
.donation-amount-input-row{
  display:flex;align-items:stretch;border:1.5px solid #e2e6f0;border-radius:10px;overflow:hidden;
  max-width:260px;transition:border-color 0.15s ease;
}
.donation-amount-input-row:focus-within{border-color:var(--a-blue,#2f6fed);}
.donation-peso-prefix{
  display:flex;align-items:center;justify-content:center;padding:0 0.9rem;
  background:#f4f6fb;color:var(--navy);font-weight:700;font-size:0.95rem;border-right:1.5px solid #e2e6f0;
}
.donation-amount-input-row input{border:none;border-radius:0;flex:1;padding:0.65rem 0.8rem;font-size:0.95rem;}
.donation-amount-input-row input:focus{outline:none;box-shadow:none;}

/* ================= ABOUT PAGE CONTENT: accordion sections (less scrolling) ================= */
.about-accordion{margin-bottom:0.9rem;}
.about-accordion summary .adg-date{font-size:1rem;}

/* ================= PRIEST DASHBOARD: mas malinaw na assigned-mass card ================= */
.pmr-detail-grid{display:flex;flex-wrap:wrap;gap:0.4rem 1.1rem;margin-top:0.45rem;}
.pmr-line{display:flex;align-items:center;gap:0.35rem;font-size:0.82rem;color:var(--navy);}
.pmr-line svg{flex-shrink:0;color:var(--blue);}
.pmr-ref{display:block;font-size:0.74rem;color:var(--muted);margin-top:0.5rem;}

/* ================= ANNOUNCEMENTS/EVENTS: click-to-open modal (parang Chapel) ================= */
.announcement-card.is-clickable, .event-card-h.is-clickable{cursor:pointer;transition:box-shadow 0.15s ease, transform 0.15s ease;}
.announcement-card.is-clickable:hover, .event-card-h.is-clickable:hover{box-shadow:0 10px 26px rgba(15,27,61,0.12);transform:translateY(-2px);}
.announcement-toggle{color:var(--blue);font-weight:700;font-size:0.82rem;display:inline-block;margin-top:0.4rem;}

/* ================= IMAGE ZOOM/LIGHTBOX (lahat ng larawan) ================= */
.img-zoom-overlay{
  position:fixed;inset:0;z-index:9999;background:rgba(6,9,25,0.92);
  display:flex;align-items:center;justify-content:center;padding:2rem;
  cursor:zoom-out;animation:imgZoomFadeIn 0.15s ease;
}
.img-zoom-overlay.hidden{display:none;}
.img-zoom-overlay img{max-width:92vw;max-height:88vh;border-radius:10px;box-shadow:0 20px 60px rgba(0,0,0,0.5);cursor:default;}
.img-zoom-close{
  position:absolute;top:1.2rem;right:1.5rem;background:rgba(255,255,255,0.12);border:none;color:#fff;
  font-size:2rem;line-height:1;width:44px;height:44px;border-radius:50%;cursor:pointer;
}
.img-zoom-close:hover{background:rgba(255,255,255,0.25);}
@keyframes imgZoomFadeIn{from{opacity:0;}to{opacity:1;}}
.chapel-slide img, .chapel-modal-photo img, .ministry-card img, .announcement-card img,
.event-card-h .photo, #aboutHistoryImage, .clergy-card img, .about-history-photo img,
.gallery-grid img, .priest-photo img, .vocations-grid img{cursor:zoom-in;}

/* ================= SCHEDULE OF MASSES: grid view, kulay-coded ================= */
.schedule-grid-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0.8rem;margin:1.2rem 0;}
.schedule-grid-month-nav{display:flex;align-items:center;gap:0.8rem;background:var(--navy,#0f1b3d);color:#fff;border-radius:10px;padding:0.5rem 1rem;}
.schedule-grid-month-nav button{background:rgba(255,255,255,0.12);border:none;color:#fff;width:28px;height:28px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.schedule-grid-month-nav button:hover{background:rgba(255,255,255,0.25);}
.schedule-grid-month-nav strong{min-width:150px;text-align:center;}
.schedule-grid-table{width:100%;border-collapse:separate;border-spacing:0;margin-bottom:0;font-size:0.82rem;}
.schedule-grid-table th, .schedule-grid-table td{
  padding:0.75rem 0.85rem;text-align:center;border-bottom:1px solid #eef1f8;border-right:1px solid #f2f4fa;
}
.schedule-grid-table th:last-child, .schedule-grid-table td:last-child{border-right:none;}
.schedule-grid-table thead th{
  background:linear-gradient(180deg,#f8faff,#f0f3fc);font-weight:700;color:var(--a-navy,#0f1b3d);
  font-size:0.72rem;text-transform:uppercase;letter-spacing:0.5px;border-bottom:2px solid #dde4f5;
  position:sticky;top:0;z-index:1;white-space:nowrap;
}
.schedule-grid-table tbody tr:hover td{background:#f7f9ff;}
.schedule-grid-table .sg-group-row th{background:#dbe4f5;font-weight:800;text-align:left;color:var(--navy,#0f1b3d);}
.schedule-grid-table thead tr:nth-child(2) th{background:#f4f6fb;font-weight:700;}
.sg-time, .sg-chapel{text-align:left !important;font-weight:600;white-space:nowrap;color:var(--a-navy,#0f1b3d);}
.sg-cell-name{
  display:inline-block;padding:0.35rem 0.7rem;border-radius:20px;font-size:0.78rem;font-weight:700;
  background:#eef1f8;color:var(--a-muted,#6b7590);
}
.sg-cell{cursor:pointer;position:relative;transition:filter 0.1s ease;}
.sg-cell:hover{filter:brightness(0.96);}
.sg-cell-warn{background:#fff3e0 !important;border-left:4px solid #f39c12 !important;}
.sg-cell-name{font-weight:600;color:var(--navy,#0f1b3d);}
.sg-cell-select{width:100%;padding:0.2rem;border-radius:6px;border:1px solid #cfd6e6;}

.swap-mode-toggle{
  display:inline-flex;background:#eef2fb;border-radius:12px;padding:0.3rem;gap:0.3rem;margin-top:0.5rem;flex-wrap:wrap;
}
.swap-mode-option{
  position:relative;cursor:pointer;padding:0.55rem 1.1rem;border-radius:9px;font-weight:700;font-size:0.85rem;
  color:var(--a-navy,#0f1b3d);transition:background 0.15s ease,color 0.15s ease;user-select:none;
}
.swap-mode-option input{position:absolute;opacity:0;width:0;height:0;}
.swap-mode-option:has(input:checked){background:var(--a-blue,#2f6fed);color:#fff;box-shadow:0 4px 10px rgba(47,111,237,0.3);}
.swap-mode-option.is-selected{background:var(--a-blue,#2f6fed);color:#fff;box-shadow:0 4px 10px rgba(47,111,237,0.3);}
.swap-mode-option:hover{background:#dde6fb;}
.swap-mode-option:has(input:checked):hover{background:var(--a-blue,#2f6fed);}
.swap-mode-option.is-selected:hover{background:var(--a-blue,#2f6fed);}
.priest-color-row{display:flex;gap:0.4rem;margin-top:0.5rem;flex-wrap:wrap;}
.priest-color-swatch{width:22px;height:22px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;}
.priest-color-swatch:hover{transform:scale(1.15);}
.priest-color-swatch.active{border-color:var(--navy,#0f1b3d);box-shadow:0 0 0 2px #fff inset;}
@media print{.schedule-grid-toolbar, .schedule-category-tabs{display:none;}}

/* ================= CLERGY SUCCESSION GROUPING (Kura Paroko + Vicars) ================= */
.clergy-succession-group{
  grid-column:1 / -1;
  background:#f9fafd;
  border:1px solid #eef1f9;
  border-radius:20px;
  padding:1.6rem;
  margin-bottom:0.5rem;
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:1.8rem;
}
.clergy-succession-group > .ministry-card{border:2px solid var(--blue,#2f6fed);box-shadow:0 6px 18px rgba(47,111,237,0.12);}
.clergy-vicars-row{flex:1;min-width:220px;}
.clergy-vicars-label{
  display:block;font-size:0.78rem;font-weight:700;letter-spacing:0.5px;text-transform:uppercase;
  color:var(--muted,#6b7280);margin-bottom:0.8rem;
}
.clergy-vicars-cards{display:flex;flex-wrap:wrap;gap:1rem;}
.clergy-vicars-cards .ministry-card{width:150px;padding:1rem;}
@media (max-width:700px){.clergy-succession-group{flex-direction:column;}}

/* ================= CHAPEL MODAL: SPPC OFFICERS TAB ================= */
.chapel-officers-grid{display:flex;flex-direction:column;gap:0.6rem;}
.chapel-officer-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:0.7rem 1rem;background:#f9fafd;border:1px solid #eef1f9;border-radius:12px;
}
.chapel-officer-role{font-weight:700;color:var(--navy,#0f1b3d);font-size:0.85rem;}
.chapel-officer-name{color:var(--muted,#6b7280);font-size:0.85rem;text-align:right;}

/* ================= SCHEDULE OVERRIDES BADGES ================= */
.override-badge{
  display:inline-block;padding:0.25rem 0.7rem;border-radius:20px;font-size:0.72rem;font-weight:700;
  text-transform:uppercase;letter-spacing:0.3px;margin-right:0.6rem;
}
.override-badge.cancelled{background:#fde3ea;color:#c0392b;}
.override-badge.moved{background:#e1f5ee;color:#0a7a52;}

/* ================= REQUIRED FIELD INDICATOR (mas malumanay na itsura) ================= */
.required-mark{
  color:#c0392b;font-weight:600;font-size:0.72rem;text-transform:none;
  background:#fde3ea;padding:0.1rem 0.5rem;border-radius:10px;margin-left:0.3rem;vertical-align:middle;
}
#priestDeclineReason{
  width:100%;border:1px solid #dde3f5;border-radius:10px;padding:0.7rem 0.9rem;
  font-family:inherit;font-size:0.9rem;resize:vertical;
}
#priestDeclineReason:focus{outline:none;border-color:var(--blue,#2f6fed);box-shadow:0 0 0 3px rgba(47,111,237,0.12);}
