/* Eventos Imaculado — Portal Paroquial v2 */
:root {
  --parish-blue:#123f73;
  --parish-blue-2:#1f5d96;
  --parish-sky:#7dc3e8;
  --parish-red:#d84f59;
  --parish-gold:#d7ac55;
  --parish-ivory:#fffaf2;
  --parish-cream:#f8f1e8;
  --parish-ink:#17324b;
  --parish-muted:#687b8d;
  --parish-line:#e6e0d8;
  --parish-white:#fff;
  --parish-shadow:0 24px 70px rgba(25,55,82,.12);
}

body.imaculado-events {
  background: var(--parish-ivory);
  color: var(--parish-ink);
}

.imaculado-events .container {
  width:min(1220px,calc(100% - 40px));
}

/* Header */
.imaculado-events .site-header.imaculado-header {
  background:rgba(255,252,247,.94);
  border-bottom:1px solid rgba(18,63,115,.08);
  box-shadow:none;
  backdrop-filter:blur(18px);
}

.imaculado-events .header-inner {
  min-height:82px;
  padding:12px 0;
}

.imaculado-events .imaculado-brand {
  gap:14px;
}

.imaculado-events .imaculado-brand img {
  width:150px;
}

.imaculado-events .brand-events-label {
  border-left:1px solid rgba(18,63,115,.16);
  color:var(--parish-blue);
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.imaculado-events .header-nav {
  gap:6px;
  color:#506579;
}

.imaculado-events .header-nav a {
  min-height:42px;
  padding:10px 14px;
  border-radius:999px;
  font-size:13px;
  font-weight:800;
}

.imaculado-events .header-nav a:hover {
  color:var(--parish-blue);
  background:#eef6fb;
}

.imaculado-events .header-nav .header-admin-link {
  margin-left:6px;
  color:var(--parish-blue);
  background:transparent;
  border:1px solid rgba(18,63,115,.18);
}

.imaculado-events .header-nav .header-admin-link:hover {
  color:#fff;
  background:var(--parish-blue);
  border-color:var(--parish-blue);
}

/* Preview */
.parish-preview-bar {
  padding:10px 18px;
  text-align:center;
  background:#fff3c9;
  border-bottom:1px solid #efdf9c;
  color:#6b551a;
  font-size:13px;
  font-weight:700;
}

/* Shared */
.parish-kicker {
  display:inline-flex;
  align-items:center;
  gap:9px;
  color:var(--parish-blue);
  font-size:11px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.parish-kicker-mark {
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--parish-red);
  box-shadow:0 0 0 5px rgba(216,79,89,.12);
}

.parish-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:50px;
  padding:13px 21px;
  border-radius:999px;
  font-weight:900;
  transition:.2s ease;
}

.parish-button:hover { transform:translateY(-2px); }

.parish-button-primary {
  color:#fff;
  background:var(--parish-blue);
  box-shadow:0 10px 25px rgba(18,63,115,.2);
}

.parish-button-primary:hover {
  color:#fff;
  background:#0d345f;
}

.parish-button-light {
  color:var(--parish-blue);
  background:#fff;
  border:1px solid rgba(18,63,115,.14);
}

.parish-button-light:hover {
  color:var(--parish-blue);
  box-shadow:0 12px 28px rgba(18,63,115,.08);
}

.parish-text-link {
  color:var(--parish-blue);
  font-weight:900;
}

.parish-text-link:hover { color:var(--parish-red); }

/* Hero */
.parish-hero {
  position:relative;
  overflow:hidden;
  padding:82px 0 76px;
  background:
    radial-gradient(circle at 80% 12%,rgba(125,195,232,.22),transparent 28%),
    radial-gradient(circle at 14% 92%,rgba(216,79,89,.08),transparent 30%),
    linear-gradient(135deg,#fffaf3 0%,#f9fbff 54%,#f1f8fc 100%);
  border-bottom:1px solid rgba(18,63,115,.08);
}

.parish-hero::after {
  content:"";
  position:absolute;
  right:-120px;
  top:-160px;
  width:520px;
  height:520px;
  border:1px solid rgba(18,63,115,.08);
  border-radius:50%;
}

.parish-hero-glow {
  position:absolute;
  border-radius:50%;
  pointer-events:none;
  filter:blur(1px);
}

.parish-hero-glow-one {
  width:180px;
  height:180px;
  right:35%;
  bottom:-95px;
  background:rgba(215,172,85,.12);
}

.parish-hero-glow-two {
  width:90px;
  height:90px;
  right:14%;
  top:80px;
  background:rgba(216,79,89,.08);
}

.parish-hero-grid {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(420px,.98fr);
  gap:72px;
  align-items:center;
}

.parish-hero-copy h1 {
  max-width:760px;
  margin:20px 0 22px;
  color:var(--parish-blue);
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(46px,5.8vw,82px);
  line-height:.98;
  letter-spacing:-.045em;
  font-weight:700;
}

.parish-hero-lead {
  max-width:680px;
  margin:0;
  color:#5f7386;
  font-size:19px;
  line-height:1.7;
}

.parish-hero-actions {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:30px;
}

.parish-hero-note {
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:25px;
  color:#788895;
  font-size:14px;
}

.parish-hero-note-icon {
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:50%;
  background:#fff;
  color:var(--parish-red);
  box-shadow:0 8px 20px rgba(18,63,115,.08);
}

.parish-hero-visual {
  position:relative;
  min-height:480px;
}

.parish-hero-emblem {
  position:absolute;
  top:18px;
  right:28px;
  z-index:3;
  display:grid;
  place-items:center;
  width:190px;
  height:190px;
  padding:28px;
  border-radius:50%;
  background:#fff;
  border:1px solid rgba(18,63,115,.1);
  box-shadow:var(--parish-shadow);
}

.parish-hero-emblem img {
  width:100%;
  height:auto;
}

.parish-hero-emblem-halo {
  position:absolute;
  inset:-13px;
  border-radius:50%;
  border:1px solid rgba(215,172,85,.4);
}

.parish-hero-card {
  position:absolute;
  background:#fff;
  border:1px solid rgba(18,63,115,.08);
  box-shadow:var(--parish-shadow);
}

.parish-hero-card-main {
  left:0;
  top:118px;
  width:min(100%,390px);
  padding:34px;
  border-radius:28px;
}

.parish-hero-card-main::before {
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:92px;
  height:6px;
  border-radius:28px 0 16px 0;
  background:linear-gradient(90deg,var(--parish-blue),var(--parish-sky));
}

.parish-hero-card-main span {
  color:var(--parish-red);
  font-size:10px;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.parish-hero-card-main strong {
  display:block;
  margin:12px 0;
  color:var(--parish-blue);
  font-family:Georgia,"Times New Roman",serif;
  font-size:31px;
  line-height:1.08;
}

.parish-hero-card-main p {
  margin:0;
  color:#6b7d8c;
  font-size:15px;
}

.parish-hero-card-small {
  display:flex;
  align-items:center;
  gap:12px;
  padding:15px 18px;
  border-radius:18px;
  color:var(--parish-blue);
  font-size:13px;
}

.parish-card-retreat {
  right:18px;
  bottom:67px;
}

.parish-card-formation {
  left:65px;
  bottom:5px;
}

.parish-mini-icon {
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:12px;
  color:#fff;
  background:var(--parish-red);
}

/* Activity paths */
.parish-paths {
  position:relative;
  z-index:2;
  margin-top:-1px;
  background:#fff;
  border-bottom:1px solid rgba(18,63,115,.08);
}

.parish-paths-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
}

.parish-path-card {
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:14px;
  align-items:center;
  min-height:112px;
  padding:22px 24px;
  border-right:1px solid rgba(18,63,115,.08);
}

.parish-path-card:first-child { border-left:1px solid rgba(18,63,115,.08); }

.parish-path-card:hover {
  background:#f6fbfe;
}

.parish-path-number {
  color:var(--parish-red);
  font-size:11px;
  font-weight:900;
}

.parish-path-card strong {
  display:block;
  color:var(--parish-blue);
  font-size:15px;
}

.parish-path-card div span {
  display:block;
  margin-top:4px;
  color:#7b8b98;
  font-size:12px;
  line-height:1.4;
}

.parish-path-arrow {
  color:#9bb0c0;
}

/* Agenda */
.parish-events-section {
  padding:92px 0;
  background:var(--parish-ivory);
}

.parish-section-heading {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,420px);
  gap:40px;
  align-items:end;
  margin-bottom:28px;
}

.parish-section-heading h2,
.parish-how-intro h2,
.parish-closing-card h2 {
  margin:11px 0 0;
  color:var(--parish-blue);
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(34px,4vw,54px);
  line-height:1.04;
  letter-spacing:-.035em;
}

.parish-section-heading > p {
  margin:0;
  color:#738594;
  font-size:16px;
}

.parish-filter {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:32px;
}

.parish-filter a {
  padding:9px 14px;
  border:1px solid rgba(18,63,115,.12);
  border-radius:999px;
  background:#fff;
  color:#657789;
  font-size:12px;
  font-weight:800;
}

.parish-filter a.is-active,
.parish-filter a:hover {
  color:#fff;
  background:var(--parish-blue);
  border-color:var(--parish-blue);
}

.parish-event-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}

.parish-event-card {
  overflow:hidden;
  display:flex;
  flex-direction:column;
  min-width:0;
  border:1px solid rgba(18,63,115,.1);
  border-radius:24px;
  background:#fff;
  box-shadow:0 14px 42px rgba(25,55,82,.08);
  transition:.22s ease;
}

.parish-event-card:hover {
  transform:translateY(-5px);
  box-shadow:0 24px 56px rgba(25,55,82,.13);
}

.parish-event-media {
  position:relative;
  display:block;
  aspect-ratio:16/10;
  overflow:hidden;
  background:#eaf3f8;
}

.parish-event-media img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .35s ease;
}

.parish-event-card:hover .parish-event-media img { transform:scale(1.035); }

.parish-event-placeholder {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  height:100%;
  background:
    radial-gradient(circle at 20% 25%,rgba(125,195,232,.28),transparent 28%),
    linear-gradient(135deg,#eef6fb,#fff9f1);
  color:var(--parish-blue);
  text-align:center;
  font-weight:800;
}

.parish-event-placeholder-mark {
  display:grid;
  place-items:center;
  width:50px;
  height:50px;
  border-radius:50%;
  background:#fff;
  color:var(--parish-red);
  font-size:22px;
  box-shadow:0 8px 20px rgba(18,63,115,.08);
}

.parish-event-featured {
  position:absolute;
  top:14px;
  left:14px;
  padding:7px 10px;
  border-radius:999px;
  color:#fff;
  background:var(--parish-red);
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.parish-event-body {
  display:flex;
  flex:1;
  flex-direction:column;
  padding:24px;
}

.parish-event-meta-top {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  color:#7a8c99;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.parish-event-meta-top span + span::before {
  content:"•";
  margin-right:8px;
  color:var(--parish-gold);
}

.parish-event-body h3 {
  margin:13px 0 16px;
  color:var(--parish-blue);
  font-family:Georgia,"Times New Roman",serif;
  font-size:27px;
  line-height:1.08;
}

.parish-event-details {
  display:grid;
  gap:8px;
  margin-bottom:14px;
}

.parish-event-details > div {
  display:flex;
  gap:9px;
  color:#647789;
  font-size:13px;
}

.parish-detail-icon { color:var(--parish-red); }

.parish-event-body > p {
  margin:0 0 22px;
  color:#748695;
  font-size:14px;
  line-height:1.65;
}

.parish-event-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-top:auto;
  padding-top:18px;
  border-top:1px solid #edf0f2;
}

.parish-event-price {
  color:#6d7d89;
  font-size:12px;
}

.parish-event-price strong { color:var(--parish-blue); }

.parish-event-link {
  white-space:nowrap;
  color:var(--parish-blue);
  font-size:13px;
  font-weight:900;
}

.parish-event-link:hover { color:var(--parish-red); }

/* Empty agenda */
.parish-empty-agenda {
  display:grid;
  grid-template-columns:120px 1fr;
  gap:30px;
  align-items:center;
  padding:42px;
  border:1px solid rgba(18,63,115,.1);
  border-radius:28px;
  background:#fff;
  box-shadow:0 16px 44px rgba(25,55,82,.07);
}

.parish-empty-symbol {
  display:grid;
  place-items:center;
  width:110px;
  height:110px;
  border-radius:50%;
  background:linear-gradient(135deg,#edf7fc,#fff5ef);
  color:var(--parish-red);
  font-size:34px;
}

.parish-empty-agenda h3 {
  margin:10px 0;
  color:var(--parish-blue);
  font-family:Georgia,"Times New Roman",serif;
  font-size:32px;
}

.parish-empty-agenda p {
  max-width:720px;
  margin:0 0 12px;
  color:#748695;
}

/* How it works */
.parish-how {
  padding:92px 0;
  background:#eef5f9;
  border-top:1px solid rgba(18,63,115,.08);
  border-bottom:1px solid rgba(18,63,115,.08);
}

.parish-how-grid {
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:80px;
  align-items:start;
}

.parish-how-intro p {
  max-width:500px;
  color:#6c7f8f;
}

.parish-steps {
  display:grid;
  gap:0;
  margin:0;
  padding:0;
  list-style:none;
  border-top:1px solid rgba(18,63,115,.12);
}

.parish-steps li {
  display:grid;
  grid-template-columns:58px 1fr;
  gap:18px;
  padding:25px 0;
  border-bottom:1px solid rgba(18,63,115,.12);
}

.parish-steps li > span {
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:50%;
  color:var(--parish-blue);
  background:#fff;
  font-size:11px;
  font-weight:900;
}

.parish-steps strong {
  color:var(--parish-blue);
  font-size:17px;
}

.parish-steps p {
  margin:5px 0 0;
  color:#748695;
  font-size:14px;
}

/* Closing */
.parish-closing {
  padding:78px 0;
  background:var(--parish-ivory);
}

.parish-closing-card {
  display:grid;
  grid-template-columns:86px 1fr auto;
  gap:28px;
  align-items:center;
  padding:38px 42px;
  border-radius:30px;
  background:var(--parish-blue);
  box-shadow:0 24px 65px rgba(18,63,115,.18);
}

.parish-closing-card .parish-kicker { color:#b9dff3; }
.parish-closing-card h2 { color:#fff; font-size:clamp(29px,3.3vw,45px); }
.parish-closing-card p { margin:10px 0 0; color:#dce9f3; }

.parish-closing-mark {
  display:grid;
  place-items:center;
  width:76px;
  height:76px;
  border-radius:50%;
  background:rgba(255,255,255,.1);
  color:#fff;
  font-size:28px;
}

/* Footer */
.imaculado-events .site-footer.imaculado-footer {
  background:#0d3158;
  color:#d5e1eb;
  border-top:0;
}

.imaculado-events .imaculado-footer-grid {
  padding-top:54px;
}

.imaculado-events .site-footer p,
.imaculado-events .site-footer a,
.imaculado-events .site-footer strong {
  color:inherit;
}

.imaculado-events .site-footer a:hover {
  color:#fff;
}

.imaculado-events .footer-company-logo {
  filter:brightness(0) invert(1);
  opacity:.94;
}

.imaculado-events .footer-signature {
  color:#9ec0da!important;
}

.imaculado-events .footer-bottom {
  color:#90adc3;
  border-top-color:rgba(255,255,255,.1);
}

/* Existing event pages inherit new palette without structural changes */
.imaculado-events .event-page-hero .eyebrow,
.imaculado-events .event-details-card .eyebrow {
  background:#eef6fb;
  border-color:#d6e7f2;
  color:var(--parish-blue);
}

.imaculado-events .event-hero-copy-light h1,
.imaculado-events .event-details-card h2,
.imaculado-events .ticket-panel h2 {
  color:var(--parish-blue);
}

@media (max-width:1000px) {
  .parish-hero-grid { grid-template-columns:1fr; gap:44px; }
  .parish-hero-visual { min-height:430px; max-width:650px; width:100%; margin:0 auto; }
  .parish-paths-grid { grid-template-columns:repeat(2,1fr); }
  .parish-event-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .parish-how-grid { grid-template-columns:1fr; gap:42px; }
  .parish-closing-card { grid-template-columns:72px 1fr; }
  .parish-closing-card .parish-button { grid-column:2; justify-self:start; }
}

@media (max-width:760px) {
  .imaculado-events .container { width:min(100% - 26px,1220px); }
  .imaculado-events .header-inner { min-height:72px; }
  .imaculado-events .imaculado-brand img { width:128px; }
  .imaculado-events .brand-events-label { display:none; }
  .imaculado-events .header-nav {
    width:100%;
    overflow-x:auto;
    flex-wrap:nowrap;
    padding-bottom:3px;
  }
  .imaculado-events .header-nav a { white-space:nowrap; }

  .parish-hero { padding:58px 0 50px; }
  .parish-hero-copy h1 { font-size:clamp(40px,12vw,60px); }
  .parish-hero-lead { font-size:17px; }
  .parish-hero-visual { min-height:410px; }
  .parish-hero-emblem { width:145px; height:145px; right:8px; }
  .parish-hero-card-main { width:calc(100% - 42px); top:104px; padding:27px; }
  .parish-hero-card-main strong { font-size:27px; }
  .parish-card-retreat { right:0; bottom:58px; }
  .parish-card-formation { left:18px; bottom:0; }

  .parish-paths-grid { grid-template-columns:1fr; }
  .parish-path-card,
  .parish-path-card:first-child { border-left:0; border-right:0; border-bottom:1px solid rgba(18,63,115,.08); }

  .parish-events-section,
  .parish-how { padding:64px 0; }
  .parish-section-heading { grid-template-columns:1fr; gap:15px; }
  .parish-event-grid { grid-template-columns:1fr; }

  .parish-empty-agenda { grid-template-columns:1fr; padding:28px; }
  .parish-empty-symbol { width:82px; height:82px; }

  .parish-closing { padding:55px 0; }
  .parish-closing-card { grid-template-columns:1fr; padding:30px 26px; }
  .parish-closing-card .parish-button { grid-column:1; }
}

@media (max-width:520px) {
  .parish-hero-actions .parish-button { width:100%; }
  .parish-hero-visual { min-height:440px; }
  .parish-hero-emblem { width:120px; height:120px; padding:21px; }
  .parish-hero-card-main { top:90px; }
  .parish-hero-card-small { max-width:230px; }
  .parish-card-retreat { bottom:72px; }
  .parish-card-formation { bottom:7px; }
  .parish-event-body { padding:20px; }
}
