:root {
  --blue: #0b2850;
  --blue-deep: #071b35;
  --blue-soft: #173e6d;
  --gold: #c7a86a;
  --gold-light: #e2cca0;
  --ivory: #f7f4ed;
  --paper: #fdfbf6;
  --ink: #18202a;
  --muted: #6f7379;
  --line: rgba(24, 32, 42, .12);
  --white: #ffffff;
  --shadow: 0 24px 70px rgba(12, 25, 43, .10);
  --radius: 24px;
  --shell: min(1180px, calc(100vw - 48px));
  --font-display: "tenez", Georgia, "Times New Roman", serif;
  --font-sans: "freight-sans-pro", Arial, Helvetica, sans-serif;
  --font-text: "freight-text-pro", Georgia, "Times New Roman", serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button { font: inherit; }
.shell { width: var(--shell); margin-inline: auto; }
.section-space { padding: 112px 0; }

.eyebrow {
  margin: 0 0 14px;
  color: var(--blue-soft);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.eyebrow.light { color: var(--gold-light); }

h1, h2, h3 {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: -.025em;
}
h2 { font-size: clamp(42px, 5.3vw, 70px); line-height: .98; }
p { line-height: 1.7; }

.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 100;
  color: var(--white);
  border-bottom: 1px solid rgba(255,255,255,.14);
  transition: background .35s ease, color .35s ease, border .35s ease, box-shadow .35s ease;
}
.site-header.is-scrolled {
  color: var(--ink);
  background: rgba(253,251,246,.94);
  backdrop-filter: blur(18px);
  border-color: var(--line);
  box-shadow: 0 8px 30px rgba(8,23,44,.07);
}
.header-inner { height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand {
  display: flex;
  align-items: center;
  gap: 0;
  min-width: 310px;
  padding: 5px 11px 5px 5px;
  border-radius: 14px;
  background: rgba(253,251,246,.94);
  color: var(--ink);
  box-shadow: 0 8px 24px rgba(8,23,44,.10);
  transition: background .3s ease, box-shadow .3s ease, padding .3s ease;
}
.site-header.is-scrolled .brand,
.project-detail-page .brand {
  background: transparent;
  box-shadow: none;
  padding-left: 0;
}
.brand-site-logo {
  width: 285px;
  height: 58px;
  object-fit: contain;
  object-position: left center;
  flex: 0 0 auto;
}
.main-nav { display: flex; align-items: center; gap: 26px; font-size: 13px; font-weight: 600; }
.main-nav > a:not(.nav-cta) { opacity: .88; transition: opacity .2s ease; }
.main-nav > a:not(.nav-cta):hover { opacity: 1; }
.nav-cta { padding: 12px 17px; border: 1px solid currentColor; border-radius: 999px; }
.menu-toggle { display: none; }

.hero {
  position: relative;
  min-height: 760px;
  height: 100svh;
  max-height: 980px;
  color: var(--white);
  overflow: hidden;
  background: var(--blue-deep);
}
.hero-bg {
  position: absolute;
  inset: 0;
  background-image: url("assets/hero-santuario.jpg");
  background-size: cover;
  background-position: center 58%;
  transform: scale(1.02);
  animation: hero-in 1.4s cubic-bezier(.2,.7,.2,1) both;
}
.hero-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(4,17,35,.88) 0%, rgba(5,23,48,.62) 42%, rgba(7,24,45,.18) 72%, rgba(7,24,45,.26) 100%),
    linear-gradient(0deg, rgba(3,15,31,.68) 0%, transparent 45%);
}
.hero-content {
  position: relative;
  z-index: 2;
  height: 100%;
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  align-items: end;
  gap: 60px;
  padding-bottom: 110px;
}
.hero-copy { max-width: 750px; }
.hero h1 { font-size: clamp(70px, 8vw, 120px); line-height: .82; text-wrap: balance; }
.hero-subtitle { margin: 24px 0 0; font-size: 18px; letter-spacing: .04em; color: rgba(255,255,255,.84); }
.hero-actions { display: flex; align-items: center; gap: 12px; margin-top: 34px; flex-wrap: wrap; }
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 22px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .02em;
  transition: transform .2s ease, background .2s ease, color .2s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn-gold { background: var(--gold); color: #17202a; }
.btn-gold:hover { background: var(--gold-light); }
.btn-ghost { border: 1px solid rgba(255,255,255,.55); color: var(--white); backdrop-filter: blur(8px); }
.btn-dark { background: var(--blue); color: var(--white); }

.hero-card {
  align-self: end;
  justify-self: end;
  width: min(100%, 390px);
  padding: 25px;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(6,25,50,.44);
  backdrop-filter: blur(16px);
  border-radius: 20px;
}
.hero-card-kicker { padding-bottom: 18px; color: var(--gold-light); font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.hero-card-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 15px 0; border-top: 1px solid rgba(255,255,255,.14); }
.hero-card-row span { font-size: 13px; color: rgba(255,255,255,.72); }
.hero-card-row strong { font-size: 14px; }
.hero-card > a { display: inline-flex; gap: 9px; margin-top: 16px; color: var(--gold-light); font-size: 12px; font-weight: 700; }
.hero-scroll { position: absolute; z-index: 2; left: max(24px, calc((100vw - 1180px) / 2)); bottom: 34px; display: flex; align-items: center; gap: 12px; color: rgba(255,255,255,.62); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.hero-scroll span { display: block; width: 45px; height: 1px; background: var(--gold); }
@keyframes hero-in { from { opacity: 0; transform: scale(1.08); } to { opacity: 1; transform: scale(1.02); } }

.intro { background: var(--ivory); }
.intro-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 90px; align-items: start; }
.intro-text { max-width: 570px; padding-top: 26px; }
.intro-text > p:first-child { margin: 0; color: #555d66; font-size: 19px; }
.scripture { margin: 44px 0 0; padding: 26px 0 0; border-top: 1px solid var(--line); font-family: var(--font-text); font-style: italic; font-weight: 500; font-size: 29px; color: var(--blue); }
.scripture span { font-family: var(--font-sans); font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }

.quick-links { padding: 90px 0 100px; background: var(--paper); }
.section-heading { max-width: 650px; }
.section-heading.compact { max-width: none; display: flex; justify-content: space-between; gap: 40px; align-items: end; margin-bottom: 46px; }
.section-heading.compact h2 { font-size: clamp(42px, 4.6vw, 62px); }
.service-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.service-card {
  position: relative;
  min-height: 220px;
  padding: 28px;
  overflow: hidden;
  border: 1px solid rgba(11,40,80,.10);
  border-radius: 22px;
  background: linear-gradient(145deg, rgba(255,255,255,.96), rgba(247,244,237,.74));
  box-shadow: 0 12px 34px rgba(9,31,57,.055);
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto 1fr auto;
  gap: 18px;
  isolation: isolate;
  transition: transform .28s cubic-bezier(.2,.7,.2,1), box-shadow .28s ease, border-color .28s ease, background .28s ease;
}
.service-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: linear-gradient(90deg, var(--gold), rgba(199,168,106,.18));
  transform: scaleX(.35);
  transform-origin: left;
  transition: transform .28s ease;
}
.service-card::after {
  content: "";
  position: absolute;
  width: 150px;
  height: 150px;
  border-radius: 50%;
  right: -70px;
  top: -74px;
  background: radial-gradient(circle, rgba(199,168,106,.17), rgba(199,168,106,0) 70%);
  z-index: -1;
  transition: transform .35s ease, opacity .35s ease;
}
.service-card:hover {
  transform: translateY(-7px);
  border-color: rgba(199,168,106,.42);
  background: var(--white);
  box-shadow: 0 24px 58px rgba(9,31,57,.13);
  z-index: 2;
}
.service-card:hover::before { transform: scaleX(1); }
.service-card:hover::after { transform: scale(1.22); }
.service-card:active {
  transform: translateY(-1px) scale(.992);
  box-shadow: inset 0 2px 8px rgba(9,31,57,.08), 0 8px 22px rgba(9,31,57,.08);
  transition-duration: .08s;
}
.service-card:focus-visible { outline: 3px solid rgba(199,168,106,.42); outline-offset: 4px; }
.service-icon {
  width: 58px;
  height: 58px;
  border-radius: 17px;
  display: grid;
  place-items: center;
  color: var(--blue);
  border: 1px solid rgba(199,168,106,.42);
  background: linear-gradient(145deg, rgba(226,204,160,.26), rgba(255,255,255,.78));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 7px 20px rgba(9,31,57,.06);
  transition: transform .28s ease, color .28s ease, background .28s ease;
}
.service-icon svg {
  width: 29px;
  height: 29px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.45;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.service-card:hover .service-icon {
  transform: translateY(-2px) rotate(-2deg);
  color: var(--white);
  background: var(--blue);
}
.service-number {
  justify-self: end;
  color: rgba(11,40,80,.33);
  font-family: var(--font-display);
  font-size: 19px;
  font-weight: 400;
}
.service-copy { grid-column: 1 / -1; align-self: end; padding-top: 7px; }
.service-card strong {
  display: block;
  color: var(--blue-deep);
  font-family: var(--font-display);
  font-size: 26px;
  line-height: 1.08;
  font-weight: 400;
}
.service-card small { display: block; max-width: 250px; margin-top: 9px; color: var(--muted); line-height: 1.5; }
.service-card.store-shortcut .service-copy strong,
.service-card.store-shortcut .service-copy small {
  max-width: 250px;
}

.arrow {
  grid-column: 2;
  align-self: end;
  justify-self: end;
  width: 35px;
  height: 35px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--blue);
  border: 1px solid rgba(11,40,80,.13);
  font-size: 16px;
  transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}
.service-card:hover .arrow { transform: translate(2px,-2px); background: var(--gold); color: var(--blue-deep); border-color: var(--gold); }


.celebrations { background: var(--blue); color: var(--white); }
.celebrations-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: 110px; align-items: start; }
.celebrations .eyebrow { color: var(--gold-light); }
.celebrations .section-heading p:last-child { margin-top: 26px; color: rgba(255,255,255,.64); max-width: 470px; }
.schedule-panel { border-top: 1px solid rgba(255,255,255,.25); }
.schedule-row { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 30px; border-bottom: 1px solid rgba(255,255,255,.16); }
.schedule-row span { font-size: 15px; }
.schedule-row small { display: block; margin-top: 5px; color: var(--gold-light); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.schedule-row strong { font-family: var(--font-display); font-size: 28px; font-weight: 400; }
.schedule-row.featured { min-height: 118px; }
.schedule-row.featured span { font-size: 21px; }
.schedule-row.featured strong { font-size: 36px; color: var(--gold-light); }
.schedule-row-thursday { align-items: flex-start; min-height: 112px; padding: 16px 0; }
.schedule-row-thursday > div { display: flex; flex-direction: column; justify-content: center; }
.schedule-row-thursday .schedule-note-title { margin-top: 7px; color: var(--gold-light); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; line-height: 1.35; }
.schedule-row-thursday .schedule-note-detail { margin-top: 3px; color: var(--gold-light); font-size: 11.5px; letter-spacing: .03em; text-transform: none; line-height: 1.45; opacity: .96; }

.cells { background: var(--ivory); overflow: hidden; }
.cells-heading { max-width: none; display: block; margin-bottom: 54px; }

/*
  Colmeia modular: cada lote contém 5 posições.
  No desktop o JavaScript calcula automaticamente o encaixe em 5 colunas,
  com as colunas 2 e 4 rebaixadas em meia altura.
*/
.cells-honeycomb {
  position: relative;
  width: 100%;
  margin: 56px auto 0;
  min-height: 620px;
  transition: height .25s ease;
}

.cell-card {
  position: absolute;
  width: clamp(176px, 16.4vw, 236px);
  aspect-ratio: 1.1547 / 1;
  padding: 22px 26px;
  display: grid;
  place-items: center;
  text-align: center;
  overflow: hidden;
  cursor: pointer;
  clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%);
  background: linear-gradient(145deg, rgba(255,255,255,.995), rgba(242,237,226,.96));
  filter: drop-shadow(0 9px 14px rgba(9,31,57,.115)) drop-shadow(0 2px 4px rgba(9,31,57,.045));
  transition: transform .30s cubic-bezier(.2,.75,.2,1), filter .30s ease, opacity .25s ease;
  isolation: isolate;
  -webkit-tap-highlight-color: transparent;
  transform-origin: center center;
}
.cell-card::before {
  content: "";
  position: absolute;
  inset: 5px;
  clip-path: inherit;
  background:
    radial-gradient(circle at 50% 26%, rgba(255,255,255,.94), transparent 42%),
    linear-gradient(145deg, rgba(255,255,255,.42), rgba(199,168,106,.045));
  z-index: -1;
  transition: background .30s ease;
}
/* detalhe único: uma linha na mesma família dourada do site */
.cell-card::after {
  content: "";
  position: absolute;
  width: 2px;
  height: 34%;
  top: 9%;
  right: 13%;
  border-radius: 999px;
  background: rgba(199,168,106,.74);
  transform: rotate(-29.5deg);
  transform-origin: center;
  box-shadow: 0 0 0 1px rgba(255,255,255,.18);
  pointer-events: none;
  transition: background .30s ease, transform .30s ease, opacity .30s ease;
}
.cell-card:hover {
  transform: translateY(-11px) scale(1.035);
  filter: drop-shadow(0 23px 30px rgba(9,31,57,.18)) drop-shadow(0 4px 7px rgba(9,31,57,.07));
  z-index: 10;
}
.cell-card:hover::before {
  background:
    radial-gradient(circle at 50% 22%, rgba(255,255,255,1), transparent 45%),
    linear-gradient(145deg, rgba(255,255,255,.62), rgba(226,204,160,.12));
}
.cell-card:hover::after {
  background: rgba(199,168,106,.96);
  transform: rotate(-29.5deg) translateY(-2px);
}

.cell-card:active {
  transform: translateY(3px) scale(.985);
  filter: drop-shadow(0 8px 12px rgba(9,31,57,.10));
  transition-duration: .08s;
}
.cell-card:focus-visible {
  outline: 3px solid rgba(199,168,106,.48);
  outline-offset: 5px;
}
.cell-card img {
  width: 90%;
  max-width: 208px;
  max-height: 78%;
  object-fit: contain;
  transition: transform .30s cubic-bezier(.2,.75,.2,1), filter .30s ease;
}
.cell-card:hover img {
  transform: scale(1.07);
  filter: contrast(1.02) saturate(1.035);
}

/* posições reservadas do próximo lote */
.cell-placeholder {
  cursor: default;
  pointer-events: none;
  opacity: .34;
  filter: drop-shadow(0 8px 12px rgba(9,31,57,.045));
  background: linear-gradient(145deg, rgba(255,255,255,.58), rgba(244,239,229,.48));
}
.cell-placeholder::before {
  background: linear-gradient(145deg, rgba(255,255,255,.35), rgba(199,168,106,.025));
}
.cell-placeholder::after { opacity: .46; }



.benefactor { position: relative; overflow: hidden; padding: 110px 0; background: var(--blue-deep); color: var(--white); }
.benefactor::before { content: ""; position: absolute; inset: 0; opacity: .12; background-image: radial-gradient(circle at 1px 1px, #fff 1px, transparent 0); background-size: 34px 34px; mask-image: linear-gradient(90deg, transparent, black 50%, transparent); }
.benefactor-glow { position: absolute; width: 460px; height: 460px; border-radius: 50%; right: 2vw; top: -260px; border: 1px solid rgba(199,168,106,.28); box-shadow: 0 0 0 90px rgba(199,168,106,.025), 0 0 0 180px rgba(199,168,106,.018); }
.benefactor-grid { position: relative; display: grid; grid-template-columns: 1.1fr .65fr; gap: 100px; align-items: center; }
.benefactor h2 { max-width: 720px; font-size: clamp(48px, 6vw, 78px); }
.benefactor-copy > p:not(.eyebrow) { max-width: 600px; margin: 24px 0 0; color: rgba(255,255,255,.67); font-size: 17px; }
.benefactor-actions { margin-top: 34px; display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.text-link { font-size: 13px; font-weight: 700; color: var(--blue); }
.light-link { color: var(--gold-light); }
.benefactor-value { padding: 34px; border-left: 1px solid rgba(255,255,255,.2); display: flex; flex-direction: column; }
.benefactor-value small { color: var(--gold-light); text-transform: uppercase; letter-spacing: .15em; font-size: 12px; }
.benefactor-value strong { margin-top: 10px; font-family: var(--font-display); font-size: 92px; line-height: 1; font-weight: 400; }
.benefactor-value sup { font-family: var(--font-sans); font-size: 17px; vertical-align: top; position: relative; top: 18px; }
.benefactor-value span { margin-top: 10px; color: rgba(255,255,255,.55); font-size: 12px; line-height: 1.5; }

.communities { background: var(--paper); }
.community-grid { display: grid; grid-template-columns: 1.22fr .78fr; grid-template-rows: repeat(2, minmax(255px, 1fr)); gap: 18px; min-height: 590px; }
.community-card { position: relative; min-height: 255px; border-radius: var(--radius); overflow: hidden; background: var(--blue); }
.community-card.large { grid-row: 1 / span 2; min-height: 590px; }
.community-card img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; transition: transform .6s ease; }
.community-card:hover img { transform: scale(1.04); }
.community-overlay { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(4,18,36,.84) 0%, rgba(4,18,36,.08) 65%); }
.community-label { position: absolute; left: 34px; right: 34px; bottom: 32px; color: var(--white); }
.community-label small { color: var(--gold-light); font-size: 12px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.community-label h3 { margin-top: 7px; font-size: clamp(28px, 3vw, 43px); line-height: 1; }

.pastoral {
  background:
    radial-gradient(circle at 12% 6%, rgba(199,168,106,.10), transparent 28%),
    var(--paper);
}
.pastoral-intro {
  display: grid;
  grid-template-columns: 1.04fr .96fr;
  gap: 90px;
  align-items: end;
  padding-top: 4px;
  margin-bottom: 54px;
}
.pastoral-intro h2 { font-size: clamp(48px, 5.8vw, 76px); }
.pastoral-lead {
  max-width: 560px;
  margin: 0 0 9px;
  color: #60666d;
  font-size: 18px;
  line-height: 1.72;
}
.pastoral-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}
.pastoral-card {
  position: relative;
  min-height: 292px;
  padding: 22px 22px 18px;
  border: 1px solid rgba(11,40,80,.09);
  border-radius: 22px;
  background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(250,247,240,.90));
  box-shadow: 0 14px 38px rgba(9,31,57,.055);
  display: grid;
  grid-template-rows: 1fr auto;
  overflow: hidden;
  isolation: isolate;
  transition: transform .28s cubic-bezier(.2,.7,.2,1), box-shadow .28s ease, border-color .28s ease, background .28s ease;
}
.pastoral-card::after {
  content: "";
  position: absolute;
  inset: auto -60px -84px auto;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  z-index: -1;
  background: radial-gradient(circle, rgba(199,168,106,.13), rgba(199,168,106,0) 70%);
  transition: transform .3s ease, opacity .3s ease;
}
.pastoral-card:hover {
  transform: translateY(-8px);
  border-color: rgba(199,168,106,.48);
  background: #fff;
  box-shadow: 0 25px 62px rgba(9,31,57,.13);
  z-index: 2;
}
.pastoral-card:active {
  transform: translateY(-2px) scale(.992);
  box-shadow: inset 0 2px 8px rgba(9,31,57,.07), 0 10px 24px rgba(9,31,57,.08);
  transition-duration: .08s;
}
.pastoral-card:focus-visible {
  outline: 3px solid rgba(199,168,106,.42);
  outline-offset: 4px;
}
.pastoral-card-line {
  position: absolute;
  width: 54px;
  height: 1.5px;
  top: 34px;
  right: 22px;
  background: var(--gold);
  transform: rotate(60deg);
  transform-origin: center;
  opacity: .74;
  transition: transform .28s ease, opacity .28s ease, width .28s ease;
}
.pastoral-card:hover .pastoral-card-line {
  width: 64px;
  opacity: 1;
  transform: rotate(60deg) translateY(-2px);
}
.pastoral-logo {
  min-height: 210px;
  padding: 18px 16px 12px;
  display: grid;
  place-items: center;
}
.pastoral-logo img {
  display: block;
  width: auto;
  height: auto;
  max-width: 88%;
  max-height: 188px;
  object-fit: contain;
  transition: transform .3s cubic-bezier(.2,.7,.2,1);
}
.pastoral-card:hover .pastoral-logo img { transform: scale(1.035); }
.pastoral-card-foot {
  min-height: 42px;
  padding-top: 14px;
  border-top: 1px solid rgba(11,40,80,.08);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .10em;
  text-transform: uppercase;
}
.pastoral-card-foot b {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  border: 1px solid rgba(11,40,80,.12);
  font-size: 14px;
  transition: transform .22s ease, background .22s ease, border-color .22s ease;
}
.pastoral-card:hover .pastoral-card-foot b {
  transform: translate(2px,-2px);
  background: var(--gold);
  border-color: var(--gold);
}
.pastoral-card-radio .pastoral-card-foot span::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-right: 8px;
  border-radius: 50%;
  background: var(--gold);
  box-shadow: 0 0 0 5px rgba(199,168,106,.12);
  vertical-align: 1px;
}

.location { padding: 110px 0; background: var(--ivory); }
.location-grid { display: grid; grid-template-columns: .86fr 1.14fr; gap: 80px; align-items: center; }
.location-copy h2 { font-size: clamp(48px, 6vw, 76px); }
.location-copy address { margin-top: 30px; color: #555d66; font-size: 18px; line-height: 1.7; font-style: normal; }
.contact-actions { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; margin-top: 34px; }
.location-photo { position: relative; display: block; height: 440px; overflow: hidden; border-radius: var(--radius); box-shadow: var(--shadow); }
.location-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.location-photo:hover img { transform: scale(1.03); }
.location-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(5,22,44,.63), transparent 48%); }
.location-photo span { position: absolute; z-index: 2; left: 25px; right: 25px; bottom: 23px; display: flex; align-items: center; justify-content: space-between; color: white; font-size: 13px; font-weight: 700; }
.location-photo b { font-size: 22px; font-weight: 400; }

.site-footer { background: #06162d; color: var(--white); padding: 72px 0 30px; }
.footer-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 46px; }
.footer-brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
}
.footer-site-logo {
  width: min(390px, 100%);
  height: auto;
  object-fit: contain;
}
.footer-brand small {
  color: rgba(255,255,255,.52);
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.footer-links { justify-self: end; display: flex; align-items: center; gap: 24px; color: rgba(255,255,255,.65); font-size: 12px; }
.footer-links a:hover { color: var(--gold-light); }
.footer-bottom { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 30px; padding-top: 28px; border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.42); font-size: 12px; letter-spacing: .03em; }
.footer-bottom a { color: rgba(255,255,255,.62); }


/* WhatsApp flutuante: mantém a linguagem azul/dourada do Santuário */
.whatsapp-float {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 120;
  min-width: 58px;
  height: 58px;
  padding: 0 18px 0 15px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border: 1px solid rgba(226,204,160,.78);
  border-radius: 999px;
  color: var(--white);
  background: rgba(7,27,53,.96);
  box-shadow: 0 14px 36px rgba(7,27,53,.24);
  backdrop-filter: blur(12px);
  transition: transform .24s ease, background .24s ease, color .24s ease, box-shadow .24s ease;
}
.whatsapp-float svg {
  width: 27px;
  height: 27px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.55;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.whatsapp-float span {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .02em;
}
.whatsapp-float:hover {
  transform: translateY(-5px);
  color: var(--blue-deep);
  background: var(--gold-light);
  box-shadow: 0 20px 44px rgba(7,27,53,.26);
}
.whatsapp-float:active { transform: translateY(1px) scale(.97); }
.whatsapp-float:focus-visible { outline: 3px solid rgba(199,168,106,.45); outline-offset: 4px; }

@media (max-width: 1050px) {
  :root { --shell: min(100% - 36px, 930px); }
  .main-nav { gap: 16px; }
  .main-nav a { font-size: 12px; }
  .hero-content { grid-template-columns: 1fr; align-content: end; gap: 35px; }
  .hero-card { justify-self: start; width: 430px; }
  .hero { min-height: 840px; max-height: none; }
  .service-grid { grid-template-columns: repeat(2, 1fr); }
  .celebrations-grid { gap: 60px; }
  .cell-card { width: clamp(168px, 18vw, 190px); padding: 18px 20px; }
  .cell-card img { width: 90%; max-width: 170px; max-height: 78%; }
  .pastoral-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

}

@media (max-width: 820px) {
  .section-space { padding: 82px 0; }
  .site-header { background: rgba(5,22,45,.46); backdrop-filter: blur(10px); }
  .site-header.is-scrolled { background: rgba(253,251,246,.97); }
  .header-inner { height: 72px; }
  .brand { min-width: 0; padding: 4px 7px 4px 4px; }
  .menu-toggle { display: inline-flex; width: 42px; height: 42px; border: 0; border-radius: 50%; background: transparent; color: inherit; flex-direction: column; align-items: center; justify-content: center; gap: 6px; cursor: pointer; }
  .menu-toggle span { display: block; width: 21px; height: 1px; background: currentColor; transition: transform .25s ease; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  /* V104 — menu móvel robusto para Safari/iPhone e navegadores internos do WhatsApp.
     Evita position:fixed dentro de um header com backdrop-filter, combinação que
     no WebKit pode limitar o painel à altura do cabeçalho e deixar os links
     vazarem sobre o conteúdo da página. */
  .site-header.menu-active {
    background: var(--blue-deep);
    color: var(--white);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-bottom-color: rgba(255,255,255,.14);
    box-shadow: none;
  }
  .site-header.menu-active .brand {
    background: rgba(253,251,246,.98);
    box-shadow: none;
  }
  .main-nav {
    position: absolute;
    top: 72px;
    left: 0;
    right: 0;
    width: 100vw;
    height: calc(100vh - 72px);
    height: calc(100dvh - 72px);
    min-height: calc(100vh - 72px);
    background: var(--paper);
    color: var(--blue-deep);
    padding: 18px 28px calc(28px + env(safe-area-inset-bottom, 0px));
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    transform: translateX(100%);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: transform .32s cubic-bezier(.2,.7,.2,1), opacity .2s ease, visibility 0s linear .32s;
    z-index: 105;
  }
  .main-nav.is-open {
    transform: translateX(0);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
  }
  .main-nav > a {
    width: 100%;
    padding: 15px 2px;
    border-bottom: 1px solid var(--line);
    color: var(--blue-deep);
    opacity: 1 !important;
    font-size: 17px !important;
    line-height: 24px;
  }
  .main-nav > a:first-child { border-top: 1px solid var(--line); }
  .nav-cta { border: 0; border-radius: 0; }
  .hero { min-height: 820px; height: 100svh; }
  .hero-bg { background-position: 60% center; }
  .hero-shade { background: linear-gradient(90deg, rgba(4,17,35,.84) 0%, rgba(5,23,48,.45) 85%), linear-gradient(0deg, rgba(3,15,31,.75), transparent 55%); }
  .hero-content { padding-bottom: 80px; }
  .hero h1 { font-size: clamp(60px, 17vw, 88px); }
  .hero-subtitle { font-size: 15px; }
  .hero-card { width: min(100%, 430px); }
  .hero-scroll { display: none; }
  .intro-grid, .celebrations-grid, .benefactor-grid, .location-grid, .cells-heading { grid-template-columns: 1fr; gap: 38px; }
  .intro-text { padding-top: 0; }
  .section-heading.compact { align-items: start; flex-direction: column; }
  .cells-honeycomb {
    position: relative;
    width: 100% !important;
    height: auto !important;
    min-height: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px 10px;
    align-items: start;
    margin-top: 44px;
    padding-bottom: 8px;
  }
  .cell-card {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    width: 100%;
    aspect-ratio: 1.1547 / 1;
    padding: 17px 14px;
  }
  .cell-card img { width: 88%; max-width: 170px; max-height: 78%; }

  .benefactor-value { border-left: 0; border-top: 1px solid rgba(255,255,255,.18); padding: 35px 0 0; }
  .community-grid { grid-template-columns: 1fr; grid-template-rows: auto; min-height: 0; }
  .community-card.large { grid-row: auto; min-height: 440px; }
  .community-card, .community-card.large { min-height: 420px; }
  .location-photo { height: 380px; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-links { justify-self: start; flex-wrap: wrap; }
  .whatsapp-float { right: 16px; bottom: 16px; width: 54px; min-width: 54px; height: 54px; padding: 0; }
  .whatsapp-float span { display: none; }
  .whatsapp-float svg { width: 26px; height: 26px; }
  .pastoral-intro { grid-template-columns: 1fr; gap: 24px; }
  .pastoral-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pastoral-card { min-height: 270px; }
}

@media (max-width: 560px) {
  :root { --shell: calc(100% - 28px); }
  .section-space { padding: 70px 0; }
  h2 { font-size: 46px; }
  .brand-site-logo { width: 220px; height: 46px; }
  .hero { min-height: 790px; }
  .hero-content { padding-bottom: 46px; }
  .hero h1 { font-size: 62px; line-height: .86; }
  .hero-actions { margin-top: 26px; }
  .hero-card { padding: 20px; }
  .hero-card-row { align-items: flex-start; }
  .hero-card-row strong { text-align: right; }
  .service-grid { grid-template-columns: 1fr; }
  .service-card { min-height: 190px; padding: 23px; }
  .schedule-row { min-height: 70px; }
  .schedule-row strong { font-size: 24px; text-align: right; }
  .schedule-row.featured { min-height: 105px; }
  .schedule-row.featured strong { font-size: 30px; }
  .schedule-row-thursday { min-height: 118px; }
  .schedule-row-thursday strong { align-self: center; }
  .cells-honeycomb {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 7px;
    margin-top: 38px;
  }
  .cell-card { padding: 14px 10px; }
  .cell-card img { width: 88%; max-width: 145px; max-height: 78%; }
  .cell-card:hover { transform: translateY(-6px) scale(1.02); }

  .benefactor { padding: 82px 0; }
  .benefactor-value strong { font-size: 76px; }
  .community-card, .community-card.large { min-height: 330px; }
  .community-label { left: 23px; right: 23px; bottom: 23px; }
  .pastoral-intro { margin-bottom: 34px; }
  .pastoral-lead { font-size: 16px; }
  .pastoral-grid { grid-template-columns: 1fr; gap: 12px; }
  .pastoral-card { min-height: 250px; padding: 18px 16px 14px; border-radius: 18px; }
  .pastoral-logo { min-height: 180px; padding: 14px 8px 8px; }
  .pastoral-logo img { max-height: 160px; max-width: 90%; }
  .pastoral-card-line { width: 45px; top: 30px; right: 17px; }
  .location-photo { height: 300px; }
  .footer-links { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .footer-bottom { flex-direction: column; gap: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
.reveal { opacity: 0; }
.reveal.revealed { opacity: 1; transition: opacity .55s ease, box-shadow .25s ease, border .25s ease, filter .25s ease; }
.schedule-row.reveal, .community-card.reveal { transform: translateY(18px); }
.schedule-row.reveal.revealed, .community-card.reveal.revealed { transform: translateY(0); transition: opacity .55s ease, transform .55s ease, box-shadow .25s ease; }


/* Páginas internas das frentes pastorais */
.project-detail-page .site-header {
  color: var(--ink);
  background: rgba(253,251,246,.96);
  border-bottom: 1px solid rgba(11,40,80,.07);
  backdrop-filter: blur(12px);
}
.project-detail-page .site-header.is-scrolled {
  background: rgba(253,251,246,.98);
}

.project-detail-page { background: var(--paper); }
.project-detail-hero {
  padding: 150px 0 86px;
  background:
    radial-gradient(circle at 80% 10%, rgba(199,168,106,.15), transparent 30%),
    var(--ivory);
}
.project-detail-grid {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 84px;
  align-items: center;
}
.project-detail-logo {
  min-height: 430px;
  padding: 44px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(11,40,80,.09);
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 18px 55px rgba(9,31,57,.08);
}
.project-detail-logo img { max-width: 92%; max-height: 330px; object-fit: contain; }
.project-detail-copy h1 { margin-top: 10px; font-size: clamp(56px, 6vw, 86px); line-height: .92; }
.project-detail-copy > p:last-of-type {
  max-width: 580px;
  margin: 25px 0 0;
  color: #5f666e;
  font-size: 18px;
  line-height: 1.7;
}
.project-detail-body { padding: 80px 0 110px; }
.project-detail-sections {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.project-detail-box {
  min-height: 210px;
  padding: 30px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: var(--white);
}
.project-detail-box span {
  color: var(--gold);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.project-detail-box h2 { margin-top: 12px; font-size: 30px; }
.project-detail-box p { margin: 14px 0 0; color: var(--muted); line-height: 1.65; }
.project-back { display: inline-flex; margin-top: 30px; color: var(--blue); font-weight: 700; font-size: 13px; }
@media (max-width: 900px) {
  .project-detail-hero { padding-top: 118px; }
  .project-detail-grid { grid-template-columns: 1fr; gap: 38px; }
  .project-detail-logo { min-height: 340px; }
  .project-detail-sections { grid-template-columns: 1fr; }
}


/* Campanha 1000 Rosas para Maria */
.campaign-page { background: var(--paper); }
.campaign-page .site-header {
  color: var(--ink);
  background: rgba(253,251,246,.97);
  border-bottom: 1px solid rgba(11,40,80,.07);
  backdrop-filter: blur(16px);
}
.campaign-page .brand { background: transparent; box-shadow: none; padding-left: 0; }
.campaign-hero {
  position: relative;
  overflow: hidden;
  padding: 142px 0 92px;
  background:
    radial-gradient(circle at 12% 10%, rgba(199,168,106,.20), transparent 28%),
    radial-gradient(circle at 88% 18%, rgba(11,40,80,.11), transparent 26%),
    linear-gradient(180deg, #fbf7ee 0%, var(--paper) 100%);
}
.campaign-hero::after {
  content: "";
  position: absolute;
  width: 520px;
  height: 520px;
  right: -260px;
  bottom: -340px;
  border-radius: 50%;
  border: 1px solid rgba(199,168,106,.20);
  box-shadow: 0 0 0 90px rgba(199,168,106,.025), 0 0 0 180px rgba(199,168,106,.018);
}
.campaign-hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1.04fr .72fr;
  gap: 82px;
  align-items: center;
}
.campaign-copy h1 {
  max-width: 760px;
  margin-top: 10px;
  color: var(--blue-deep);
  font-size: clamp(58px, 7vw, 98px);
  line-height: .88;
}
.campaign-copy .campaign-lead {
  max-width: 640px;
  margin: 28px 0 0;
  color: #5e646b;
  font-size: 18px;
  line-height: 1.75;
}
.campaign-actions { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 32px; }
.campaign-art {
  position: relative;
  justify-self: end;
  width: min(100%, 430px);
  border-radius: 30px;
  overflow: hidden;
  background: var(--blue-deep);
  box-shadow: 0 32px 90px rgba(5,23,48,.22);
}
.campaign-art img { width: 100%; height: auto; }
.campaign-art::after {
  content: "";
  position: absolute;
  inset: 13px;
  border: 1px solid rgba(226,204,160,.34);
  border-radius: 22px;
  pointer-events: none;
}
.campaign-facts {
  position: relative;
  z-index: 3;
  margin-top: -34px;
}
.campaign-facts-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-radius: 24px;
  overflow: hidden;
  background: var(--blue-deep);
  box-shadow: 0 22px 70px rgba(7,27,53,.16);
}
.campaign-fact { padding: 30px 34px; color: #fff; border-right: 1px solid rgba(255,255,255,.12); }
.campaign-fact:last-child { border-right: 0; }
.campaign-fact small { display: block; color: var(--gold-light); font-size: 12px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.campaign-fact strong { display: block; margin-top: 8px; font-family: var(--font-display); font-size: 38px; font-weight: 400; line-height: 1; }
.campaign-fact span { display: block; margin-top: 8px; color: rgba(255,255,255,.63); font-size: 12px; line-height: 1.55; }

/* 1000 Rosas para Maria — bloco do Anjo Benfeitor */
.anjo-detail {
  padding: 108px 0;
  background:
    radial-gradient(circle at 86% 14%, rgba(199,168,106,.11), transparent 24%),
    #fff;
  border-top: 1px solid rgba(11,40,80,.07);
  border-bottom: 1px solid rgba(11,40,80,.07);
}
.anjo-detail-grid {
  display: grid;
  grid-template-columns: .78fr 1.22fr;
  gap: 90px;
  align-items: start;
}
.anjo-detail-heading h2 {
  color: var(--blue-deep);
  font-size: clamp(54px, 6vw, 80px);
  line-height: .92;
}
.anjo-detail-copy {
  max-width: 720px;
  color: #5f666d;
  font-size: 17px;
}
.anjo-detail-copy p { margin: 0 0 22px; }
.anjo-detail-copy strong { color: var(--blue-deep); }
.anjo-highlight {
  margin: 30px 0 !important;
  padding: 22px 24px;
  border-left: 2px solid var(--gold);
  background: rgba(199,168,106,.08);
  color: var(--blue-deep);
  font-family: var(--font-text); font-style: italic; font-weight: 500;
  font-size: 28px;
  line-height: 1.25;
}
.anjo-actions {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  margin-top: 32px;
}

.campaign-story { padding: 118px 0 88px; }
.campaign-story-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: 90px; align-items: start; }
.campaign-story h2 { color: var(--blue-deep); }
.campaign-story-copy { max-width: 680px; color: #626970; font-size: 17px; }
.campaign-story-copy p { margin: 0 0 20px; }
.campaign-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 38px; }
.campaign-step { min-height: 190px; padding: 28px; border: 1px solid var(--line); border-radius: 22px; background: #fff; }
.campaign-step b { color: var(--gold); font-size: 12px; letter-spacing: .14em; }
.campaign-step h3 { margin-top: 13px; color: var(--blue-deep); font-size: 28px; }
.campaign-step p { margin: 11px 0 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.campaign-form-section {
  padding: 96px 0 120px;
  background:
    radial-gradient(circle at 92% 4%, rgba(199,168,106,.12), transparent 26%),
    var(--ivory);
}
.campaign-form-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: 84px; align-items: start; }
.campaign-form-copy { position: sticky; top: 122px; }
.campaign-form-copy h2 { color: var(--blue-deep); }
.campaign-form-copy > p:not(.eyebrow) { max-width: 500px; margin-top: 23px; color: #626970; font-size: 16px; }
.campaign-mini-summary { margin-top: 30px; padding-top: 26px; border-top: 1px solid rgba(11,40,80,.12); }
.campaign-mini-summary p { margin: 6px 0; color: var(--blue); font-size: 13px; font-weight: 700; }
.roses-form {
  padding: 34px;
  border: 1px solid rgba(11,40,80,.10);
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(7,27,53,.08);
}
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.form-field { display: flex; flex-direction: column; gap: 8px; }
.form-field.full { grid-column: 1 / -1; }
.form-field label, .form-field > span { color: var(--blue-deep); font-size: 12px; font-weight: 800; letter-spacing: .03em; }
.form-field input, .form-field select, .form-field textarea {
  width: 100%;
  min-height: 50px;
  padding: 13px 15px;
  border: 1px solid rgba(11,40,80,.15);
  border-radius: 13px;
  outline: none;
  background: #fdfcf9;
  color: var(--ink);
  font: inherit;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.form-field textarea { min-height: 112px; resize: vertical; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus {
  border-color: rgba(199,168,106,.8);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(199,168,106,.10);
}
.form-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.form-option { display: flex; align-items: center; gap: 9px; min-height: 48px; padding: 11px 13px; border: 1px solid rgba(11,40,80,.12); border-radius: 13px; background: #fdfcf9; color: #50565c; font-size: 13px; cursor: pointer; }
.form-option input { width: 16px; height: 16px; accent-color: var(--blue); }
.form-consent { display: flex; align-items: flex-start; gap: 11px; margin-top: 22px; color: #666d74; font-size: 12px; line-height: 1.55; }
.form-consent input { width: 17px; height: 17px; margin-top: 1px; flex: 0 0 auto; accent-color: var(--blue); }
.form-actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 26px; }
.form-note { color: #7a8086; font-size: 12px; line-height: 1.55; }
.form-status { display: none; margin-top: 18px; padding: 13px 15px; border-radius: 12px; background: rgba(11,40,80,.06); color: var(--blue); font-size: 13px; }
.form-status.is-visible { display: block; }
.campaign-privacy { padding: 54px 0 100px; background: var(--paper); }
.campaign-privacy-box { padding: 28px 32px; border-left: 2px solid var(--gold); background: rgba(199,168,106,.06); }
.campaign-privacy-box h2 { font-size: 30px; color: var(--blue-deep); }
.campaign-privacy-box p { max-width: 850px; margin: 12px 0 0; color: #6b7177; font-size: 13px; }

@media (max-width: 980px) {
  .campaign-hero-grid, .campaign-story-grid, .campaign-form-grid, .anjo-detail-grid { grid-template-columns: 1fr; gap: 44px; }
  .campaign-art { justify-self: start; width: min(78vw, 430px); }
  .campaign-facts { margin-top: 0; padding-top: 24px; }
  .campaign-form-copy { position: static; }
  .campaign-steps { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .campaign-hero { padding: 116px 0 66px; }
  .campaign-hero-grid { gap: 34px; }
  .campaign-copy h1 { font-size: clamp(52px, 16vw, 78px); }
  .campaign-facts-grid { grid-template-columns: 1fr; }
  .campaign-fact { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.12); }
  .campaign-fact:last-child { border-bottom: 0; }
  .anjo-detail { padding: 78px 0; }
  .campaign-story { padding: 78px 0 64px; }
  .campaign-form-section { padding: 72px 0 84px; }
  .roses-form { padding: 22px; border-radius: 22px; }
  .form-grid { grid-template-columns: 1fr; }
  .form-field.full { grid-column: auto; }
  .form-options { grid-template-columns: 1fr; }
}


/* Mil Rosas — histórico, razões, obra divina e PIX */
.campaign-section-heading {
  display: grid;
  grid-template-columns: 1fr .72fr;
  gap: 70px;
  align-items: end;
  margin-bottom: 48px;
}
.campaign-section-heading h2 {
  max-width: 760px;
  color: var(--blue-deep);
}
.campaign-section-heading > p {
  max-width: 520px;
  margin: 0 0 6px;
  color: #686e74;
  font-size: 15px;
}
.campaign-section-heading-light h2 { color: #fff; }
.campaign-section-heading-light > p { color: rgba(255,255,255,.66); }

.campaign-history {
  padding: 108px 0;
  background: var(--ivory);
}
.history-stat-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.history-stat {
  min-height: 188px;
  padding: 27px;
  border: 1px solid rgba(11,40,80,.09);
  border-radius: 20px;
  background: rgba(255,255,255,.78);
  box-shadow: 0 12px 34px rgba(7,27,53,.045);
}
.history-stat small {
  color: var(--gold);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.history-stat strong {
  display: block;
  margin-top: 15px;
  color: var(--blue-deep);
  font-family: var(--font-display);
  font-size: 39px;
  font-weight: 400;
  line-height: 1;
}
.history-stat span {
  display: block;
  margin-top: 12px;
  color: #6e747a;
  font-size: 12px;
  line-height: 1.55;
}
.history-note {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
  margin-top: 28px;
  padding-top: 26px;
  border-top: 1px solid rgba(11,40,80,.11);
}
.history-note p {
  margin: 0;
  color: #687078;
  font-size: 13px;
}

.campaign-reasons {
  padding: 112px 0;
  color: #fff;
  background:
    radial-gradient(circle at 82% 12%, rgba(199,168,106,.17), transparent 28%),
    var(--blue-deep);
}
.reason-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
.reason-card {
  position: relative;
  min-height: 176px;
  padding: 27px 24px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 20px;
  background: rgba(255,255,255,.045);
  transition: transform .25s ease, background .25s ease, border-color .25s ease;
}
.reason-card:hover {
  transform: translateY(-5px);
  border-color: rgba(199,168,106,.48);
  background: rgba(255,255,255,.075);
}
.reason-card b {
  color: var(--gold-light);
  font-size: 12px;
  letter-spacing: .16em;
}
.reason-card p {
  margin: 28px 0 0;
  color: rgba(255,255,255,.84);
  font-family: var(--font-display);
  font-size: 22px;
  line-height: 1.22;
}
.reason-card:last-child {
  grid-column: span 2;
}

.campaign-divine {
  padding: 110px 0;
  background: #fff;
}
.campaign-divine-grid {
  display: grid;
  grid-template-columns: .72fr 1.28fr;
  gap: 86px;
  align-items: start;
}
.campaign-divine-title {
  position: sticky;
  top: 125px;
}
.campaign-divine-title h2 {
  color: var(--blue-deep);
}
.divine-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.divine-cards article {
  min-height: 220px;
  padding: 30px;
  border: 1px solid rgba(11,40,80,.10);
  border-radius: 22px;
  background: linear-gradient(145deg, #fff, #faf7f0);
}
.divine-cards span {
  color: var(--gold);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.divine-cards h3 {
  margin-top: 15px;
  color: var(--blue-deep);
  font-size: 31px;
}
.divine-cards p {
  margin: 14px 0 0;
  color: #6b7178;
  font-size: 14px;
}

.campaign-pix {
  padding: 108px 0 118px;
  background:
    radial-gradient(circle at 88% 6%, rgba(199,168,106,.13), transparent 27%),
    var(--paper);
}
.pix-payment-card {
  display: grid;
  grid-template-columns: .72fr 1.28fr;
  min-height: 500px;
  overflow: hidden;
  border: 1px solid rgba(11,40,80,.10);
  border-radius: 30px;
  background: #fff;
  box-shadow: 0 28px 80px rgba(7,27,53,.09);
}
.pix-qr-panel {
  position: relative;
  padding: 42px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background:
    radial-gradient(circle at 50% 25%, rgba(226,204,160,.22), transparent 36%),
    var(--ivory);
  border-right: 1px solid rgba(11,40,80,.08);
}
.pix-badge {
  position: absolute;
  top: 28px;
  left: 30px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .16em;
}
.pix-qr-frame {
  width: min(100%, 320px);
  aspect-ratio: 1;
  padding: 18px;
  border: 1px solid rgba(11,40,80,.12);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 16px 42px rgba(7,27,53,.08);
}
.pix-qr-frame img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.pix-qr-panel small {
  margin-top: 22px;
  color: #6d7379;
  font-size: 12px;
  text-align: center;
}
.pix-copy-panel {
  padding: 58px;
  align-self: center;
}
.pix-copy-panel h3 {
  color: var(--blue-deep);
  font-size: clamp(38px, 4vw, 56px);
}
.pix-copy-panel > p:not(.eyebrow) {
  max-width: 560px;
  margin: 17px 0 0;
  color: #666d74;
}
.pix-code-box {
  margin-top: 28px;
  padding: 20px;
  border: 1px solid rgba(11,40,80,.12);
  border-radius: 16px;
  background: #f7f7f5;
}
.pix-code-box code {
  display: block;
  max-height: 124px;
  overflow: auto;
  color: var(--blue);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 12px;
  line-height: 1.6;
  overflow-wrap: anywhere;
  word-break: break-all;
}
.pix-actions {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  margin-top: 24px;
}
.pix-copy-button {
  border: 0;
  cursor: pointer;
}
.pix-copy-status {
  min-height: 22px;
  margin-top: 13px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 700;
}

@media (max-width: 980px) {
  .campaign-section-heading,
  .campaign-divine-grid,
  .pix-payment-card {
    grid-template-columns: 1fr;
  }
  .campaign-section-heading { gap: 22px; }
  .history-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reason-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reason-card:last-child { grid-column: span 2; }
  .campaign-divine-title { position: static; }
  .pix-qr-panel { border-right: 0; border-bottom: 1px solid rgba(11,40,80,.08); }
}

@media (max-width: 720px) {
  .campaign-history,
  .campaign-reasons,
  .campaign-divine,
  .campaign-pix { padding: 78px 0; }
  .history-stat-grid,
  .history-note,
  .reason-grid,
  .divine-cards { grid-template-columns: 1fr; }
  .reason-card:last-child { grid-column: auto; }
  .history-stat { min-height: 150px; }
  .pix-payment-card { border-radius: 22px; }
  .pix-qr-panel { padding: 54px 22px 34px; }
  .pix-copy-panel { padding: 32px 22px 38px; }
  .pix-qr-frame { width: min(100%, 280px); }
}


/* Adobe Fonts — kit kur2vce
   Tenez: títulos
   Freight Sans Pro: interface e corpo
   Freight Text Pro: trechos editoriais/devocionais */
body,
button,
input,
textarea,
select {
  font-family: var(--font-sans);
}
body {
  font-weight: 400;
}
.main-nav,
.btn,
.eyebrow,
.text-link,
.hero-card-kicker,
.schedule-row small,
.community-label small,
.campaign-fact small,
.history-stat small,
.reason-card b {
  font-family: var(--font-sans);
}
.main-nav,
.btn,
.text-link {
  font-weight: 500;
}
h1, h2, h3,
.service-card strong,
.schedule-row strong,
.benefactor-value strong,
.campaign-fact strong,
.history-stat strong,
.reason-card p {
  font-family: var(--font-display);
  font-weight: 400;
}
.scripture,
.anjo-highlight {
  font-family: var(--font-text);
  font-style: italic;
}


/* V13 — Loja no acesso rápido e símbolo do Anjo Benfeitor */
.service-card.store-shortcut {
  grid-column: auto;
  min-height: 220px;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto 1fr auto;
  align-items: initial;
}
.store-shortcut .service-icon { grid-row: auto; }
.store-shortcut .service-number { grid-column: 2; grid-row: 1; }
.store-shortcut .service-copy { grid-column: 1 / -1; grid-row: auto; align-self: end; padding-top: 7px; }
.store-shortcut .arrow { grid-column: 2; grid-row: auto; }
.store-shortcut .service-copy small { max-width: 250px; }

.benefactor-symbol {
  min-height: 390px;
  padding: 18px 20px 8px 54px;
  border-left: 1px solid rgba(255,255,255,.2);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.benefactor-symbol img {
  width: min(310px, 92%);
  max-height: 285px;
  object-fit: contain;
  filter: drop-shadow(0 14px 34px rgba(0,0,0,.18));
}
.benefactor-symbol strong {
  margin-top: 8px;
  color: var(--gold-light);
  font-family: var(--font-display);
  font-size: clamp(27px, 3vw, 39px);
  font-weight: 400;
  line-height: .98;
  letter-spacing: .02em;
  text-transform: uppercase;
}

@media (max-width: 980px) {
  .benefactor-symbol { border-left: 0; border-top: 1px solid rgba(255,255,255,.18); padding: 38px 0 0; min-height: 0; }
}
@media (max-width: 720px) {
  /* Loja segue o mesmo padrão dos demais cards no mobile */
  .service-card.store-shortcut { min-height: 190px; }
  .benefactor-symbol img { width: min(260px, 88%); }
}


/* V14 — Grupos e Ministérios */
.groups {
  background:
    radial-gradient(circle at 82% 0%, rgba(199,168,106,.10), transparent 26%),
    var(--ivory);
}
.groups-intro {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 90px;
  align-items: end;
  margin-bottom: 52px;
}
.groups-intro h2 { font-size: clamp(48px, 5.8vw, 76px); }
.groups-intro > p {
  max-width: 570px;
  margin: 0 0 8px;
  color: #626970;
  font-size: 18px;
  line-height: 1.72;
}
.groups-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}
.group-card {
  position: relative;
  min-height: 430px;
  overflow: hidden;
  border: 1px solid rgba(11,40,80,.09);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 14px 38px rgba(9,31,57,.055);
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.group-card:hover {
  transform: translateY(-8px);
  border-color: rgba(199,168,106,.48);
  box-shadow: 0 25px 62px rgba(9,31,57,.13);
}
.group-card-line {
  position: absolute;
  z-index: 3;
  width: 58px;
  height: 1.5px;
  top: 35px;
  right: 22px;
  background: var(--gold);
  transform: rotate(60deg);
}
.group-card-media {
  height: 275px;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: #f7f4ed;
}
.group-card-media.dark { background: var(--blue-deep); }
.group-card-media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.group-card-body { padding: 24px 24px 28px; }
.group-card-body small {
  color: var(--gold);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.group-card-body h3 {
  margin-top: 7px;
  color: var(--blue-deep);
  font-size: 30px;
  line-height: 1;
}
.group-card-body span {
  display: inline-block;
  margin-top: 20px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 700;
}

/* V14 — destaque Acampamentos */
.camp-highlight {
  position: relative;
  overflow: hidden;
  padding: 108px 0;
  background: var(--blue-deep);
  color: #fff;
}
.camp-highlight::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .11;
  background-image: radial-gradient(circle at 1px 1px, #fff 1px, transparent 0);
  background-size: 34px 34px;
  mask-image: linear-gradient(90deg, transparent, black 50%, transparent);
}
.camp-highlight-glow {
  position: absolute;
  width: 480px;
  height: 480px;
  border-radius: 50%;
  left: -210px;
  bottom: -330px;
  border: 1px solid rgba(199,168,106,.26);
  box-shadow: 0 0 0 90px rgba(199,168,106,.025), 0 0 0 180px rgba(199,168,106,.018);
}
.camp-highlight-grid {
  position: relative;
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 86px;
  align-items: center;
}
.camp-highlight h2 {
  max-width: 650px;
  font-size: clamp(48px, 5.8vw, 76px);
}
.camp-highlight-copy > p:not(.eyebrow) {
  max-width: 600px;
  margin: 24px 0 0;
  color: rgba(255,255,255,.67);
  font-size: 17px;
}
.camp-highlight-actions {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
  margin-top: 34px;
}
.camp-highlight-photo {
  position: relative;
  min-height: 430px;
  overflow: hidden;
  border-radius: 28px;
  border: 1px solid rgba(199,168,106,.35);
  box-shadow: 0 24px 60px rgba(0,0,0,.22);
}
.camp-highlight-photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s ease;
}
.camp-highlight-photo:hover img { transform: scale(1.04); }
.camp-highlight-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(4,18,36,.82), rgba(4,18,36,.04) 66%);
}
.camp-highlight-photo span {
  position: absolute;
  z-index: 2;
  left: 30px;
  right: 30px;
  bottom: 27px;
  color: #fff;
  font-family: var(--font-display);
  font-size: 31px;
  line-height: 1;
}
.camp-highlight-photo small {
  display: block;
  margin-bottom: 8px;
  color: var(--gold-light);
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.camp-highlight-photo b { float: right; color: var(--gold-light); font-family: var(--font-sans); }

/* páginas internas dos grupos */
.group-detail-page { background: var(--paper); }
.group-detail { padding-top: 96px; }
.group-detail-hero {
  padding: 80px 0 88px;
  background:
    radial-gradient(circle at 88% 10%, rgba(199,168,106,.12), transparent 28%),
    var(--ivory);
}
.group-detail-grid {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 82px;
  align-items: center;
}
.group-detail h1 {
  color: var(--blue-deep);
  font-size: clamp(58px, 7vw, 92px);
  line-height: .94;
}
.group-detail-lead {
  max-width: 620px;
  margin: 24px 0 32px;
  color: #656c73;
  font-size: 18px;
}
.group-detail-image {
  min-height: 520px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 30px;
  background: var(--blue-deep);
  box-shadow: 0 28px 70px rgba(7,27,53,.13);
}
.group-detail-image img {
  width: 100%;
  height: 100%;
  max-height: 600px;
  object-fit: contain;
}
.group-placeholder-grid {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 80px;
}
.group-placeholder-grid p { color: #656c73; font-size: 17px; }

/* página de Acampamentos */
.camp-page { background: var(--paper); }
.camp-page-hero {
  position: relative;
  min-height: 720px;
  overflow: hidden;
}
.camp-page-hero > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.camp-page-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(5,24,48,.88) 0%, rgba(5,24,48,.56) 44%, rgba(5,24,48,.14) 76%);
}
.camp-page-copy {
  position: relative;
  z-index: 2;
  min-height: 720px;
  padding-top: 170px;
  color: #fff;
}
.camp-page-copy h1 {
  max-width: 720px;
  font-size: clamp(72px, 9vw, 126px);
  line-height: .84;
}
.camp-page-copy > p:not(.eyebrow) {
  max-width: 560px;
  margin: 25px 0 35px;
  color: rgba(255,255,255,.78);
  font-size: 19px;
}
.camp-agenda-intro {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 90px;
}
.camp-agenda-intro > div:last-child > p { color: #656c73; font-size: 18px; }
.camp-empty {
  margin-top: 28px;
  padding: 30px;
  border-left: 2px solid var(--gold);
  background: rgba(199,168,106,.08);
  color: var(--blue-deep);
}
.camp-site-story {
  padding: 100px 0;
  background: var(--blue-deep);
  color: #fff;
}
.camp-site-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 90px;
  align-items: end;
}
.camp-site-grid h2 { font-size: clamp(48px, 6vw, 78px); }
.camp-site-grid > p { color: rgba(255,255,255,.68); font-size: 18px; line-height: 1.7; }

@media (max-width: 1080px) {
  .groups-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
  .groups-intro,
  .camp-highlight-grid,
  .group-detail-grid,
  .group-placeholder-grid,
  .camp-agenda-intro,
  .camp-site-grid {
    grid-template-columns: 1fr;
    gap: 42px;
  }
  .camp-highlight-photo { min-height: 390px; }
  .group-detail-image { min-height: 430px; }
}
@media (max-width: 720px) {
  .groups-grid { grid-template-columns: 1fr; }
  .group-card { min-height: 390px; }
  .group-card-media { height: 245px; }
  .camp-highlight { padding: 82px 0; }
  .camp-highlight-photo { min-height: 310px; }
  .camp-page-hero, .camp-page-copy { min-height: 630px; }
  .camp-page-copy { padding-top: 150px; }
}


/* ==========================================================
   V20 — ACAMPAMENTOS
   Reformulação do material histórico para o padrão do site
   ========================================================== */

.camp20-page,
.camp20-detail-page {
  background: var(--paper);
  color: var(--ink);
}

/* HERO */
.camp20-hero {
  position: relative;
  min-height: 760px;
  overflow: hidden;
  background: var(--blue-deep);
}
.camp20-hero > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.camp20-hero-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(4,22,44,.94) 0%, rgba(4,22,44,.72) 42%, rgba(4,22,44,.24) 76%),
    linear-gradient(0deg, rgba(4,22,44,.28), transparent 42%);
}
.camp20-hero-content {
  position: relative;
  z-index: 2;
  min-height: 760px;
  padding-top: 190px;
  color: #fff;
}
.camp20-hero h1 {
  max-width: 820px;
  font-size: clamp(76px, 9vw, 132px);
  line-height: .82;
  letter-spacing: -.025em;
}
.camp20-hero-content > p:not(.eyebrow) {
  max-width: 620px;
  margin: 28px 0 0;
  color: rgba(255,255,255,.76);
  font-size: 20px;
}
.camp20-hero-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 26px;
  margin-top: 38px;
}

/* Editorial intro */
.camp20-editorial-grid {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 92px;
  align-items: start;
}
.camp20-editorial-grid h2 {
  color: var(--blue-deep);
  font-size: clamp(48px, 5.6vw, 76px);
  line-height: .96;
}
.camp20-intro-copy,
.camp20-detail-text {
  max-width: 760px;
  color: #626a72;
  font-size: 17px;
  line-height: 1.78;
}
.camp20-intro-copy p,
.camp20-detail-text p {
  margin: 0 0 22px;
}

.camp20-pillars {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 28px;
  align-items: center;
  margin-top: 70px;
}
.camp20-pillars article {
  min-height: 215px;
  padding: 32px;
  border-radius: 24px;
  border: 1px solid rgba(11,40,80,.10);
  background: #fff;
  box-shadow: 0 20px 55px rgba(7,27,53,.06);
}
.camp20-pillars small {
  color: var(--gold);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.camp20-pillars strong {
  display: block;
  margin-top: 18px;
  color: var(--blue-deep);
  font-family: var(--font-display);
  font-size: 65px;
  font-weight: 400;
  line-height: .8;
}
.camp20-pillars p {
  margin: 20px 0 0;
  color: #687078;
}
.camp20-pillar-arrow {
  color: var(--gold);
  font-size: 32px;
}

/* headings */
.camp20-heading {
  display: grid;
  grid-template-columns: 1fr .72fr;
  gap: 76px;
  align-items: end;
  margin-bottom: 52px;
}
.camp20-heading h2 {
  color: var(--blue-deep);
  font-size: clamp(50px, 6vw, 78px);
  line-height: .94;
}
.camp20-heading > p {
  max-width: 540px;
  margin: 0 0 7px;
  color: #687078;
  font-size: 16px;
}
.camp20-heading-light h2 { color: #fff; }
.camp20-heading-light > p { color: rgba(255,255,255,.66); }

/* grid 14 modalidades */
.camp20-modalities {
  background:
    radial-gradient(circle at 90% 5%, rgba(199,168,106,.10), transparent 26%),
    var(--ivory);
}
.camp20-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}
.camp20-card {
  position: relative;
  overflow: hidden;
  min-height: 440px;
  display: flex;
  flex-direction: column;
  border-radius: 24px;
  border: 1px solid rgba(11,40,80,.09);
  background: #fff;
  box-shadow: 0 15px 42px rgba(8,27,52,.055);
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.camp20-card:hover {
  transform: translateY(-8px);
  border-color: rgba(199,168,106,.55);
  box-shadow: 0 28px 70px rgba(8,27,52,.13);
}
.camp20-card-art {
  position: relative;
  height: 210px;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: var(--blue-deep);
}
.camp20-card-art::after {
  content: "";
  position: absolute;
  width: 78px;
  height: 1px;
  right: 20px;
  top: 39px;
  background: var(--gold);
  transform: rotate(60deg);
}
.camp20-card-art img {
  width: 150px;
  height: 150px;
  object-fit: contain;
  opacity: .92;
}
.camp20-card-number {
  position: absolute;
  left: 22px;
  top: 19px;
  color: rgba(255,255,255,.46);
  font-family: var(--font-display);
  font-size: 20px;
}
.camp20-card-body {
  flex: 1;
  padding: 25px 25px 28px;
}
.camp20-card-body small {
  display: block;
  min-height: 36px;
  color: #81878c;
  font-size: 12px;
  line-height: 1.45;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.camp20-card-body h3 {
  margin-top: 10px;
  color: var(--blue-deep);
  font-size: 34px;
  line-height: .96;
}
.camp20-card-body p {
  min-height: 42px;
  margin: 9px 0 0;
  color: #626970;
  font-size: 13px;
}
.camp20-card-link {
  display: block;
  margin-top: 22px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 700;
}
.camp20-flag {
  display: inline-flex;
  margin-top: 14px;
  padding: 6px 9px;
  border-radius: 999px;
  background: rgba(199,168,106,.12);
  color: #9a7431;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

/* Agenda */
.camp20-agenda {
  padding: 112px 0 120px;
  background:
    radial-gradient(circle at 85% 8%, rgba(199,168,106,.13), transparent 26%),
    var(--blue-deep);
  color: #fff;
}
.camp20-agenda-panel {
  display: grid;
  grid-template-columns: 160px 1fr;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.11);
  border-radius: 26px;
  background: rgba(255,255,255,.04);
}
.camp20-months {
  display: flex;
  flex-direction: column;
  padding: 16px;
  border-right: 1px solid rgba(255,255,255,.10);
}
.camp20-months button {
  min-height: 51px;
  border: 0;
  border-radius: 11px;
  background: transparent;
  color: rgba(255,255,255,.50);
  font: 600 11px/1 var(--font-sans);
  letter-spacing: .12em;
  cursor: pointer;
  transition: background .2s ease, color .2s ease;
}
.camp20-months button:hover,
.camp20-months button.is-active {
  background: rgba(199,168,106,.13);
  color: var(--gold-light);
}
.camp20-events {
  padding: 40px;
}
.camp20-events-head small {
  color: var(--gold-light);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.camp20-events-head h3 {
  margin-top: 7px;
  color: #fff;
  font-size: 48px;
}
.camp20-event {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 24px;
  align-items: center;
  padding: 22px 0;
  border-top: 1px solid rgba(255,255,255,.09);
}
.camp20-event:first-child { margin-top: 20px; }
.camp20-event-date {
  color: var(--gold-light);
  font-family: var(--font-display);
  font-size: 24px;
}
.camp20-event small {
  display: block;
  margin-bottom: 4px;
  color: rgba(255,255,255,.40);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.camp20-event strong {
  color: rgba(255,255,255,.78);
  font-size: 15px;
  font-weight: 500;
}
.camp20-event.is-camp {
  margin: 8px -18px;
  padding: 20px 18px;
  border: 1px solid rgba(199,168,106,.27);
  border-radius: 16px;
  background: rgba(199,168,106,.07);
}
.camp20-event.is-camp strong { color: #fff; }

/* Cores */
.camp20-colors {
  background: var(--paper);
}
.camp20-colors-layout {
  display: grid;
  grid-template-columns: 270px 1fr;
  gap: 22px;
}
.camp20-color-nav {
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.camp20-color-nav button {
  min-height: 52px;
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 0 16px;
  border: 1px solid rgba(11,40,80,.09);
  border-radius: 13px;
  background: #fff;
  color: var(--blue-deep);
  font: 600 12px/1 var(--font-sans);
  cursor: pointer;
  transition: transform .2s ease, border-color .2s ease;
}
.camp20-color-nav button:hover { transform: translateX(4px); }
.camp20-color-nav button.is-active {
  border-color: rgba(199,168,106,.65);
  box-shadow: 0 0 0 3px rgba(199,168,106,.08);
}
.camp20-color-nav button span {
  width: 21px;
  height: 21px;
  border-radius: 50%;
  border: 1px solid rgba(11,40,80,.10);
}
.camp20-color-panel {
  position: relative;
  min-height: 500px;
  display: grid;
  grid-template-columns: 115px 1fr;
  gap: 32px;
  padding: 45px;
  border: 1px solid rgba(11,40,80,.09);
  border-radius: 26px;
  background: #fff;
  box-shadow: 0 18px 50px rgba(8,27,52,.055);
}
.camp20-color-swatch {
  width: 90px;
  height: 250px;
  border-radius: 999px;
  background: var(--active-color);
}
.camp20-color-panel h3 {
  color: var(--blue-deep);
  font-size: 54px;
}
.camp20-color-copy {
  max-width: 720px;
  color: #626970;
  font-size: 16px;
  line-height: 1.75;
}
.camp20-color-copy h3 { display: none; }
.camp20-color-copy p { margin: 0 0 22px; }
.camp20-color-copy strong { color: var(--blue-deep); }

/* Sítio */
.camp20-site {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  min-height: 650px;
  background: var(--blue-deep);
}
.camp20-site-photo {
  min-height: 650px;
  overflow: hidden;
}
.camp20-site-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.camp20-site-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 75px clamp(40px, 6vw, 100px);
  color: #fff;
}
.camp20-site-copy h2 {
  max-width: 520px;
  font-size: clamp(52px, 6vw, 82px);
}
.camp20-site-copy > p:not(.eyebrow) {
  max-width: 590px;
  margin: 24px 0 0;
  color: rgba(255,255,255,.68);
  font-size: 17px;
}
.camp20-site-actions {
  display: flex;
  gap: 22px;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 34px;
}

/* Detail hero */
.camp20-detail-hero {
  padding: 155px 0 92px;
  background:
    radial-gradient(circle at 83% 12%, rgba(199,168,106,.14), transparent 30%),
    var(--ivory);
}
.camp20-detail-hero-grid {
  display: grid;
  grid-template-columns: 1.12fr .88fr;
  gap: 78px;
  align-items: center;
}
.camp20-detail-copy h1 {
  color: var(--blue-deep);
  font-size: clamp(70px, 9vw, 120px);
  line-height: .82;
}
.camp20-detail-tagline {
  max-width: 720px;
  margin: 24px 0 0;
  color: #687078;
  font-family: var(--font-text);
  font-size: 29px;
  font-style: italic;
}
.camp20-detail-meta {
  display: grid;
  grid-template-columns: .7fr 1.3fr;
  gap: 10px;
  max-width: 760px;
  margin: 38px 0 28px;
}
.camp20-detail-meta article {
  padding: 20px;
  border: 1px solid rgba(11,40,80,.09);
  border-radius: 17px;
  background: rgba(255,255,255,.72);
}
.camp20-detail-meta small {
  display: block;
  color: var(--gold);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.camp20-detail-meta strong {
  display: block;
  margin-top: 8px;
  color: var(--blue-deep);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
}
.camp20-detail-emblem {
  position: relative;
  min-height: 520px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 32px;
  background: var(--blue-deep);
  box-shadow: 0 30px 80px rgba(7,27,53,.16);
}
.camp20-detail-emblem::before {
  content: "";
  position: absolute;
  width: 430px;
  height: 430px;
  border-radius: 50%;
  border: 1px solid rgba(199,168,106,.28);
}
.camp20-detail-emblem > span {
  position: absolute;
  top: 25px;
  right: 31px;
  color: rgba(255,255,255,.25);
  font-family: var(--font-display);
  font-size: 40px;
}
.camp20-detail-emblem img {
  position: relative;
  width: min(70%, 340px);
  height: min(70%, 340px);
  object-fit: contain;
}
.camp20-detail-story { background: #fff; }

.camp20-source-alert {
  margin-top: 35px;
  padding: 22px;
  border-left: 2px solid var(--gold);
  background: rgba(199,168,106,.09);
}
.camp20-source-alert strong {
  color: #986f28;
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.camp20-source-alert p {
  margin: 8px 0 0;
  font-size: 13px;
}

/* Núcleo */
.camp20-nucleus {
  padding: 105px 0 115px;
  background:
    radial-gradient(circle at 90% 5%, rgba(199,168,106,.13), transparent 25%),
    var(--blue-deep);
}
.camp20-people-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.camp20-person {
  min-height: 110px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 22px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 17px;
  background: rgba(255,255,255,.045);
}
.camp20-person strong {
  display: block;
  color: #fff;
  font-size: 16px;
}
.camp20-person span {
  display: block;
  margin-top: 6px;
  color: rgba(255,255,255,.56);
  font-size: 12px;
}
.camp20-person a {
  color: var(--gold-light);
  text-decoration: none;
}
.camp20-contact-warning {
  flex: 0 0 auto;
  padding: 5px 7px;
  border-radius: 999px;
  background: rgba(199,168,106,.12);
  color: var(--gold-light) !important;
  font-size: 12px !important;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.camp20-detail-next {
  padding: 68px 0;
  background: var(--ivory);
}
.camp20-detail-next a {
  position: relative;
  display: block;
  padding: 38px 45px;
  border-radius: 22px;
  border: 1px solid rgba(11,40,80,.09);
  background: #fff;
  transition: transform .25s ease, box-shadow .25s ease;
}
.camp20-detail-next a:hover {
  transform: translateY(-5px);
  box-shadow: 0 22px 56px rgba(8,27,52,.10);
}
.camp20-detail-next small {
  color: var(--gold);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.camp20-detail-next strong {
  display: block;
  margin-top: 7px;
  color: var(--blue-deep);
  font-family: var(--font-display);
  font-size: 35px;
  font-weight: 400;
}
.camp20-detail-next span {
  position: absolute;
  right: 38px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--gold);
  font-size: 30px;
}

/* responsive */
@media (max-width: 1120px) {
  .camp20-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .camp20-people-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
  .camp20-editorial-grid,
  .camp20-heading,
  .camp20-detail-hero-grid,
  .camp20-site {
    grid-template-columns: 1fr;
    gap: 42px;
  }
  .camp20-pillars { grid-template-columns: 1fr; }
  .camp20-pillar-arrow { transform: rotate(90deg); justify-self: center; }
  .camp20-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .camp20-agenda-panel { grid-template-columns: 1fr; }
  .camp20-months {
    flex-direction: row;
    overflow-x: auto;
    border-right: 0;
    border-bottom: 1px solid rgba(255,255,255,.10);
  }
  .camp20-months button { min-width: 72px; }
  .camp20-colors-layout { grid-template-columns: 1fr; }
  .camp20-color-nav {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
  }
  .camp20-site-photo { min-height: 420px; }
  .camp20-detail-emblem { min-height: 430px; }
}
@media (max-width: 720px) {
  .camp20-hero,
  .camp20-hero-content { min-height: 660px; }
  .camp20-hero-content { padding-top: 170px; }
  .camp20-hero h1 { font-size: clamp(63px, 19vw, 91px); }
  .camp20-grid,
  .camp20-people-grid { grid-template-columns: 1fr; }
  .camp20-card { min-height: 410px; }
  .camp20-heading { margin-bottom: 36px; }
  .camp20-events { padding: 26px 20px; }
  .camp20-event { grid-template-columns: 1fr; gap: 6px; }
  .camp20-color-nav { grid-template-columns: repeat(2, 1fr); }
  .camp20-color-panel {
    grid-template-columns: 1fr;
    padding: 28px 22px;
  }
  .camp20-color-swatch {
    width: 100%;
    height: 24px;
  }
  .camp20-detail-hero { padding-top: 135px; }
  .camp20-detail-meta { grid-template-columns: 1fr; }
  .camp20-detail-emblem { min-height: 350px; }
  .camp20-detail-emblem::before { width: 280px; height: 280px; }
  .camp20-detail-next a { padding: 30px 65px 30px 26px; }
  .camp20-detail-next strong { font-size: 28px; }
}


/* ==========================================================
   V22 — IGREJA EM CÉLULAS
   ========================================================== */

.cells-heading {
  align-items: end;
}
.cells-heading-action {
  max-width: 430px;
  justify-self: end;
}
.cells-heading-action p {
  margin: 0 0 18px;
  color: #687078;
  font-size: 14px;
  line-height: 1.65;
}
.btn-outline-dark {
  border: 1px solid rgba(11,40,80,.35);
  background: transparent;
  color: var(--blue-deep);
}
.btn-outline-dark:hover {
  background: var(--blue-deep);
  color: #fff;
}

/* página explicativa */
.cells-info-page {
  background: var(--paper);
  color: var(--ink);
}

.cells-info-hero {
  padding: 162px 0 95px;
  background:
    radial-gradient(circle at 82% 12%, rgba(199,168,106,.15), transparent 29%),
    var(--ivory);
}
.cells-info-hero-grid {
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  gap: 82px;
  align-items: center;
}
.cells-info-hero h1 {
  max-width: 850px;
  color: var(--blue-deep);
  font-size: clamp(68px, 8vw, 110px);
  line-height: .86;
  letter-spacing: -.025em;
}
.cells-info-hero-copy > p:not(.eyebrow) {
  max-width: 650px;
  margin: 27px 0 0;
  color: #626a72;
  font-size: 18px;
  line-height: 1.7;
}
.cells-info-hero-actions {
  display: flex;
  gap: 24px;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 34px;
}

.cells-info-hero-mark {
  min-height: 510px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 35px;
  border-radius: 32px;
  background: var(--blue-deep);
  box-shadow: 0 30px 78px rgba(7,27,53,.16);
}
.cells-info-honeycomb {
  position: relative;
  width: 330px;
  height: 270px;
}
.cells-info-honeycomb span {
  position: absolute;
  width: 105px;
  height: 91px;
  background: transparent;
  border: 3px solid var(--gold-light);
  clip-path: polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);
}
.cells-info-honeycomb span:nth-child(1){left:112px;top:0}
.cells-info-honeycomb span:nth-child(2){left:57px;top:82px}
.cells-info-honeycomb span:nth-child(3){left:167px;top:82px}
.cells-info-honeycomb span:nth-child(4){left:2px;top:164px}
.cells-info-honeycomb span:nth-child(5){left:112px;top:164px}
.cells-info-honeycomb span:nth-child(6){left:222px;top:164px}
.cells-info-honeycomb span:nth-child(7){left:112px;top:82px;background:rgba(199,168,106,.16)}
.cells-info-hero-mark small {
  color: rgba(255,255,255,.62);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.cells-info-editorial {
  display: grid;
  grid-template-columns: .82fr 1.18fr;
  gap: 90px;
  align-items: start;
}
.cells-info-editorial h2 {
  color: var(--blue-deep);
  font-size: clamp(48px, 5.6vw, 76px);
  line-height: .95;
}
.cells-info-copy {
  max-width: 760px;
  color: #626a72;
  font-size: 17px;
  line-height: 1.8;
}
.cells-info-copy p { margin: 0 0 23px; }

.cells-info-history {
  padding: 110px 0;
  background:
    radial-gradient(circle at 88% 8%, rgba(199,168,106,.13), transparent 27%),
    var(--blue-deep);
  color: #fff;
}
.cells-info-history-grid,
.cells-info-living-grid {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 90px;
}
.cells-info-history h2,
.cells-info-living h2 {
  max-width: 700px;
  font-size: clamp(49px, 5.8vw, 78px);
}
.cells-info-history-copy {
  color: rgba(255,255,255,.72);
  font-size: 17px;
  line-height: 1.78;
}
.cells-info-history-copy > p { margin: 0 0 24px; }
.cells-info-quotes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 13px;
  margin-top: 35px;
}
.cells-info-quotes blockquote,
.cells-info-living blockquote {
  margin: 0;
  padding: 25px;
  border: 1px solid rgba(199,168,106,.28);
  border-radius: 18px;
  background: rgba(255,255,255,.04);
  color: #fff;
  font-family: var(--font-text);
  font-size: 24px;
  font-style: italic;
}
.cells-info-quotes cite,
.cells-info-living cite {
  display: block;
  margin-top: 12px;
  color: var(--gold-light);
  font-family: var(--font-sans);
  font-size: 12px;
  font-style: normal;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.cells-info-heading {
  display: grid;
  grid-template-columns: 1fr .72fr;
  gap: 75px;
  align-items: end;
  margin-bottom: 50px;
}
.cells-info-heading h2 {
  color: var(--blue-deep);
  font-size: clamp(48px, 5.8vw, 78px);
  line-height: .94;
}
.cells-info-heading > p {
  max-width: 540px;
  margin: 0 0 5px;
  color: #687078;
  font-size: 16px;
}

.cells-info-purposes {
  background:
    radial-gradient(circle at 90% 7%, rgba(199,168,106,.10), transparent 27%),
    var(--ivory);
}
.cells-info-purpose-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0,1fr));
  gap: 12px;
}
.cells-info-purpose {
  min-height: 285px;
  padding: 28px 23px;
  border: 1px solid rgba(11,40,80,.09);
  border-radius: 20px;
  background: #fff;
  transition: transform .25s ease, box-shadow .25s ease;
}
.cells-info-purpose:hover {
  transform: translateY(-6px);
  box-shadow: 0 22px 55px rgba(8,27,52,.10);
}
.cells-info-purpose > span {
  color: var(--gold);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
}
.cells-info-purpose h3 {
  margin-top: 42px;
  color: var(--blue-deep);
  font-size: 31px;
}
.cells-info-purpose p {
  margin: 13px 0 0;
  color: #687078;
  font-size: 13px;
  line-height: 1.6;
}

.cells-info-es {
  display: grid;
  grid-template-columns: .42fr 1.58fr;
  gap: 50px;
  align-items: center;
  margin-top: 66px;
  padding: 42px;
  border-radius: 24px;
  background: var(--blue-deep);
  color: #fff;
}
.cells-info-es h3 {
  color: #fff;
  font-size: 43px;
}
.cells-info-es ol {
  display: grid;
  grid-template-columns: repeat(5,1fr);
  gap: 10px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.cells-info-es li {
  padding: 20px 17px;
  border-left: 1px solid rgba(255,255,255,.12);
}
.cells-info-es li span {
  display: block;
  color: var(--gold-light);
  font-size: 12px;
  letter-spacing: .12em;
}
.cells-info-es li strong {
  display: block;
  margin-top: 15px;
  color: #fff;
  font-family: var(--font-display);
  font-size: 23px;
  font-weight: 400;
}

.cells-info-mission { background: #fff; }
.cells-info-side-note {
  max-width: 500px;
  margin-top: 25px;
  color: #687078;
  font-size: 15px;
}
.cells-info-finalities {
  list-style: none;
  margin: 0;
  padding: 0;
}
.cells-info-finalities li {
  display: grid;
  grid-template-columns: 50px 1fr;
  gap: 18px;
  align-items: start;
  padding: 17px 0;
  border-bottom: 1px solid rgba(11,40,80,.09);
}
.cells-info-finalities span {
  color: var(--gold);
  font-size: 12px;
  font-weight: 700;
}
.cells-info-finalities p {
  margin: 0;
  color: var(--blue-deep);
  font-size: 17px;
  line-height: 1.55;
}

.cells-info-place {
  padding: 105px 0;
  background: var(--paper);
}
.cells-info-place-grid {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 20px;
}
.cells-info-place-card,
.cells-info-number-card {
  padding: 50px;
  border-radius: 27px;
}
.cells-info-place-card {
  border: 1px solid rgba(11,40,80,.09);
  background: #fff;
}
.cells-info-place-card h2 {
  max-width: 700px;
  color: var(--blue-deep);
  font-size: clamp(45px,5.1vw,70px);
}
.cells-info-place-card p {
  color: #687078;
  font-size: 16px;
  line-height: 1.75;
}
.cells-info-number-card {
  background: var(--blue-deep);
  color: #fff;
}
.cells-info-number-card small {
  color: var(--gold-light);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.cells-info-number-card strong {
  display: block;
  margin-top: 7px;
  color: #fff;
  font-family: var(--font-display);
  font-size: 88px;
  font-weight: 400;
  line-height: .9;
}
.cells-info-number-card > span {
  display: block;
  margin-bottom: 27px;
  color: rgba(255,255,255,.65);
  font-size: 14px;
}
.cells-info-number-card p,
.cells-info-number-card li {
  color: rgba(255,255,255,.70);
  line-height: 1.65;
}
.cells-info-number-card ul { padding-left: 18px; }

.cells-info-not {
  background: var(--ivory);
}
.cells-not-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 14px;
}
.cells-not-card {
  min-height: 290px;
  padding: 30px;
  border: 1px solid rgba(11,40,80,.09);
  border-radius: 22px;
  background: #fff;
}
.cells-not-card h3 {
  color: var(--blue-deep);
  font-size: 31px;
  line-height: 1;
}
.cells-not-card p {
  margin: 18px 0 0;
  color: #687078;
  font-size: 14px;
  line-height: 1.7;
}

.cells-info-living {
  padding: 108px 0;
  background:
    radial-gradient(circle at 15% 10%, rgba(199,168,106,.13), transparent 26%),
    var(--blue-deep);
  color: #fff;
}
.cells-info-living-grid > div:last-child {
  color: rgba(255,255,255,.72);
  font-size: 17px;
  line-height: 1.77;
}
.cells-info-living-grid > div:last-child > p { margin: 0 0 23px; }
.cells-info-living blockquote { margin-top: 33px; }

.cells-info-types { background: #fff; }
.cells-info-types-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.cells-info-types-grid article {
  min-height: 280px;
  padding: 38px;
  border-radius: 24px;
  border: 1px solid rgba(11,40,80,.09);
  background: linear-gradient(145deg,#fff,#faf8f2);
}
.cells-info-types-grid small {
  color: var(--gold);
  font-size: 12px;
  letter-spacing: .14em;
}
.cells-info-types-grid h3 {
  margin-top: 35px;
  color: var(--blue-deep);
  font-size: 45px;
}
.cells-info-types-grid p {
  max-width: 600px;
  color: #687078;
  line-height: 1.7;
}
.cells-info-final-call {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 35px;
  margin-top: 35px;
  padding: 32px 38px;
  border-radius: 20px;
  background: var(--ivory);
}
.cells-info-final-call p {
  max-width: 750px;
  margin: 0;
  color: var(--blue-deep);
  font-size: 16px;
  line-height: 1.65;
}

@media (max-width:1080px) {
  .cells-info-purpose-grid { grid-template-columns: repeat(3,1fr); }
  .cells-not-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width:980px) {
  .cells-heading-action { justify-self: start; max-width: none; }
  .cells-info-hero-grid,
  .cells-info-editorial,
  .cells-info-history-grid,
  .cells-info-heading,
  .cells-info-place-grid,
  .cells-info-living-grid {
    grid-template-columns: 1fr;
    gap: 42px;
  }
  .cells-info-hero-mark { min-height: 420px; }
  .cells-info-es { grid-template-columns: 1fr; }
  .cells-info-es ol { grid-template-columns: repeat(3,1fr); }
}
@media (max-width:720px) {
  .cells-info-hero { padding-top: 135px; }
  .cells-info-hero h1 { font-size: clamp(60px,18vw,88px); }
  .cells-info-honeycomb { transform: scale(.83); }
  .cells-info-purpose-grid,
  .cells-not-grid,
  .cells-info-types-grid { grid-template-columns: 1fr; }
  .cells-info-es ol { grid-template-columns: 1fr 1fr; }
  .cells-info-quotes { grid-template-columns: 1fr; }
  .cells-info-place-card,
  .cells-info-number-card { padding: 32px 25px; }
  .cells-info-final-call {
    align-items: flex-start;
    flex-direction: column;
  }
}


/* V23 — a marca do cabeçalho também funciona como "voltar ao início" */
.brand-home-link {
  cursor: pointer;
}
.brand-home-link .brand-site-logo {
  transition: transform .25s ease, opacity .25s ease;
}
.brand-home-link:hover .brand-site-logo {
  transform: translateY(-2px);
  opacity: .92;
}


/* ==========================================================
   V24 — CALIBRAÇÃO TIPOGRÁFICA
   Referência:
   Freight Sans Pro Book = 18px / 27px / 0.3px / #425066
   Freight Sans Pro Medium = navegação, botões e interface
   Tenez Regular = títulos
   Freight Text Pro Medium Italic = trechos editoriais/devocionais
   Nenhuma regra de layout é alterada neste bloco.
   ========================================================== */

:root {
  --type-reading-color: #425066;
  --type-reading-size: 18px;
  --type-reading-leading: 27px;
  --type-reading-tracking: .3px;
}

/* Base de leitura */
body {
  font-family: var(--font-sans);
  font-size: var(--type-reading-size);
  line-height: var(--type-reading-leading);
  letter-spacing: var(--type-reading-tracking);
  font-weight: 400;
  color: var(--type-reading-color);
}

/* Parágrafos e listas de leitura: Freight Sans Pro Book */
main p,
main li,
address {
  font-family: var(--font-sans);
  font-weight: 400;
  line-height: var(--type-reading-leading);
  letter-spacing: var(--type-reading-tracking);
}

/* Títulos: Tenez Regular. Tamanhos responsivos já aprovados são preservados. */
h1, h2, h3,
.service-card strong,
.schedule-row strong,
.benefactor-value strong,
.campaign-fact strong,
.history-stat strong,
.reason-card p,
.camp20-card-body h3,
.cells-info-purpose h3,
.cells-not-card h3 {
  font-family: var(--font-display);
  font-weight: 400;
}

/* Navegação — Freight Sans Pro Medium */
.main-nav {
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 22.5px;
  letter-spacing: .15px;
  font-weight: 500;
}

/* Botões e links de ação */
.btn,
.text-link,
.project-back,
.store-nav-bag,
.store-floating-bag {
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 22.5px;
  letter-spacing: .15px;
  font-weight: 500;
}

/* Texto corrido principal — calibração equivalente à referência */
.hero-subtitle,
.pastoral-lead,
.location-copy address,
.benefactor-copy > p:not(.eyebrow),
.campaign-hero-copy > p:not(.eyebrow),
.campaign-story-copy,
.campaign-form-copy > p:not(.eyebrow),
.anjo-detail-copy,
.group-detail-lead,
.group-placeholder-grid p,
.camp-highlight-copy > p:not(.eyebrow),
.camp-agenda-intro > div:last-child > p,
.camp-site-grid > p,
.camp20-hero-content > p:not(.eyebrow),
.camp20-intro-copy,
.camp20-detail-text,
.camp20-site-copy > p:not(.eyebrow),
.cells-info-hero-copy > p:not(.eyebrow),
.cells-info-copy,
.cells-info-history-copy,
.cells-info-heading > p,
.cells-info-place-card p,
.cells-info-living-grid > div:last-child,
.cells-info-types-grid p,
.cells-info-final-call p {
  font-family: var(--font-sans);
  font-size: 18px;
  line-height: 27px;
  letter-spacing: .3px;
  font-weight: 400;
}

/* Em superfícies claras, aproxima a cor de leitura à referência */
.pastoral-lead,
.location-copy address,
.campaign-story-copy,
.campaign-form-copy > p:not(.eyebrow),
.anjo-detail-copy,
.group-detail-lead,
.group-placeholder-grid p,
.camp-agenda-intro > div:last-child > p,
.cells-info-hero-copy > p:not(.eyebrow),
.cells-info-copy,
.cells-info-heading > p,
.cells-info-place-card p,
.cells-info-types-grid p,
.cells-info-final-call p {
  color: var(--type-reading-color);
}

/* Cards: aumentar legibilidade sem transformar texto auxiliar em corpo de 18px */
.service-card small {
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 22.5px;
  letter-spacing: .2px;
  font-weight: 400;
}

.hero-card-row span,
.hero-card-row strong {
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 22.5px;
}

.hero-card > a,
.location-photo span,
.group-card-body span,
.camp20-card-link {
  font-family: var(--font-sans);
  font-size: 14px;
  line-height: 21px;
  font-weight: 500;
}

/* Informações secundárias */
.schedule-row span {
  font-size: 16px;
  line-height: 24px;
  letter-spacing: .2px;
}

.form-option,
.form-status,
.campaign-mini-summary p {
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 22.5px;
  font-weight: 400;
}

.campaign-step p,
.campaign-privacy-box p,
.cells-info-purpose p,
.cells-not-card p,
.cells-info-number-card p,
.cells-info-number-card li,
.camp20-card-body p {
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 22.5px;
  letter-spacing: .2px;
  font-weight: 400;
}

/* Microtextos continuam menores, porém não excessivamente pequenos */
.eyebrow,
.hero-card-kicker,
.schedule-row small,
.community-label small,
.campaign-fact small,
.history-stat small,
.reason-card b,
.pastoral-card-foot,
.form-field label,
.form-field > span,
.store-product-copy small,
.store-empty-state span,
.camp20-card-body small,
.camp20-events-head small,
.camp20-event small,
.cells-info-purpose > span,
.cells-info-finalities span,
.cells-info-number-card small,
.cells-info-types-grid small {
  font-family: var(--font-sans);
  font-size: 12px;
  line-height: 18px;
  font-weight: 500;
}

/* Rodapé */
.footer-links {
  font-family: var(--font-sans);
  font-size: 14px;
  line-height: 21px;
  letter-spacing: .15px;
  font-weight: 400;
}

.footer-bottom,
.footer-brand small {
  font-family: var(--font-sans);
  font-size: 12px;
  line-height: 18px;
  letter-spacing: .2px;
  font-weight: 400;
}

/* Freight Text Pro Medium Italic nos trechos editoriais/devocionais */
.scripture,
.anjo-highlight,
.camp20-detail-tagline,
.cells-info-quotes blockquote,
.cells-info-living blockquote {
  font-family: var(--font-text);
  font-style: italic;
  font-weight: 500;
}

/* Tablet: não reduzir o menu para 12px como antes */
@media (max-width: 1180px) and (min-width: 821px) {
  .main-nav,
  .main-nav a {
    font-size: 14px;
    line-height: 21px;
  }
}

/* Mobile: mantém leitura confortável */
@media (max-width: 820px) {
  body {
    font-size: 17px;
    line-height: 25.5px;
    letter-spacing: .2px;
  }

  .main-nav > a {
    font-size: 17px !important;
    line-height: 25.5px;
    font-weight: 500;
  }

  .btn,
  .text-link {
    font-size: 15px;
    line-height: 22.5px;
  }

  main p,
  main li,
  address {
    line-height: 25.5px;
  }
}


/* ==========================================================
   V25 — ESCALA MÚSICOS ABADIA
   ========================================================== */

.musicians-schedule-intro {
  background: var(--paper);
}
.musicians-privacy-note {
  margin-top: 22px;
  padding: 18px 20px;
  border-left: 2px solid var(--gold);
  background: rgba(199,168,106,.08);
  color: var(--type-reading-color);
}

.musicians-calendar-section {
  padding: 105px 0 115px;
  background:
    radial-gradient(circle at 88% 8%, rgba(199,168,106,.10), transparent 26%),
    var(--ivory);
}
.musicians-calendar-section-alt {
  background: #fff;
}
.musicians-calendar-heading {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 40px;
  align-items: end;
  margin-bottom: 42px;
}
.musicians-calendar-heading h2 {
  color: var(--blue-deep);
  font-size: clamp(54px, 6vw, 82px);
  line-height: .9;
}
.musicians-calendar-event-note {
  min-width: 340px;
  padding: 20px 24px;
  border-radius: 18px;
  background: var(--blue-deep);
  color: #fff;
}
.musicians-calendar-event-note strong {
  display: block;
  color: var(--gold-light);
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.musicians-calendar-event-note span {
  display: block;
  margin-top: 6px;
  color: rgba(255,255,255,.72);
  font-size: 14px;
  line-height: 21px;
}

.musicians-schedule {
  overflow: hidden;
  border: 1px solid rgba(11,40,80,.10);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 22px 60px rgba(7,27,53,.07);
}
.musicians-schedule-head,
.musicians-schedule-row {
  display: grid;
  grid-template-columns: 190px 120px 1fr;
  align-items: center;
}
.musicians-schedule-head {
  min-height: 54px;
  padding: 0 28px;
  background: var(--blue-deep);
  color: rgba(255,255,255,.62);
}
.musicians-schedule-head span {
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.musicians-schedule-row {
  min-height: 92px;
  padding: 17px 28px;
  border-top: 1px solid rgba(11,40,80,.08);
  transition: background .2s ease, transform .2s ease;
}
.musicians-schedule-row:hover {
  background: rgba(199,168,106,.055);
}
.musicians-schedule-date strong {
  display: block;
  color: var(--blue-deep);
  font-family: var(--font-display);
  font-size: 25px;
  font-weight: 400;
  line-height: 1;
}
.musicians-schedule-date span {
  display: block;
  margin-top: 6px;
  color: #777e85;
  font-family: var(--font-sans);
  font-size: 12px;
  line-height: 18px;
}
.musicians-schedule-time {
  color: var(--gold);
  font-family: var(--font-display);
  font-size: 26px;
  line-height: 1;
}
.musicians-schedule-person strong {
  display: block;
  color: var(--blue-deep);
  font-family: var(--font-sans);
  font-size: 18px;
  line-height: 27px;
  letter-spacing: .3px;
  font-weight: 500;
}
.musicians-schedule-note {
  display: block;
  margin-top: 3px;
  color: #687078;
  font-size: 14px;
  line-height: 21px;
}
.musicians-schedule-row.is-special {
  background: rgba(199,168,106,.08);
}
.musicians-schedule-row.is-open-slot .musicians-schedule-person strong {
  color: #93989d;
  font-weight: 400;
  font-style: italic;
}

@media (max-width: 820px) {
  .musicians-calendar-heading {
    grid-template-columns: 1fr;
  }
  .musicians-calendar-event-note {
    min-width: 0;
  }
  .musicians-schedule-head {
    display: none;
  }
  .musicians-schedule-row {
    grid-template-columns: 1fr auto;
    gap: 12px 22px;
    padding: 22px;
  }
  .musicians-schedule-date {
    grid-column: 1 / 2;
  }
  .musicians-schedule-time {
    grid-column: 2 / 3;
    grid-row: 1;
    justify-self: end;
  }
  .musicians-schedule-person {
    grid-column: 1 / -1;
  }
}


/* ==========================================================
   V29 — ABADIA RÁDIO WEB
   ========================================================== */

.radio-modal-open {
  overflow: hidden;
}

/* Botão permanente: canto inferior esquerdo */
.radio-float {
  position: fixed;
  z-index: 9800;
  left: 24px;
  bottom: 24px;
  min-height: 58px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 13px 7px 8px;
  border: 1px solid rgba(199,168,106,.56);
  border-radius: 999px;
  background: rgba(5,28,55,.96);
  color: #fff;
  box-shadow: 0 14px 40px rgba(5,24,46,.22);
  cursor: pointer;
  backdrop-filter: blur(12px);
  transition: transform .25s ease, box-shadow .25s ease;
}
.radio-float:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 48px rgba(5,24,46,.28);
}
.radio-float-live {
  position: absolute;
  top: 5px;
  left: 51px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #e94b4b;
  box-shadow: 0 0 0 0 rgba(233,75,75,.65);
  animation: radioLivePulse 1.8s infinite;
}
@keyframes radioLivePulse {
  0% { box-shadow: 0 0 0 0 rgba(233,75,75,.6); }
  70% { box-shadow: 0 0 0 7px rgba(233,75,75,0); }
  100% { box-shadow: 0 0 0 0 rgba(233,75,75,0); }
}
.radio-float-icon {
  width: 43px;
  height: 43px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 50%;
  background: #fff;
}
.radio-float-icon img {
  width: 88%;
  height: 88%;
  object-fit: contain;
}
.radio-float-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1;
}
.radio-float-copy small {
  color: var(--gold-light);
  font-family: var(--font-sans);
  font-size: 12px;
  line-height: 12px;
  font-weight: 700;
  letter-spacing: .12em;
}
.radio-float-copy strong {
  margin-top: 3px;
  color: #fff;
  font-family: var(--font-sans);
  font-size: 13px;
  line-height: 17px;
  font-weight: 500;
}
.radio-float-play {
  width: 25px;
  height: 25px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--gold);
  color: var(--blue-deep);
  font-size: 12px;
}

/* Promo / modal */
.radio-promo {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.radio-promo.is-open {
  display: flex;
}
.radio-promo-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(3,17,34,.70);
  backdrop-filter: blur(6px);
}
.radio-promo-card {
  position: relative;
  z-index: 1;
  width: min(860px, 94vw);
  display: grid;
  grid-template-columns: .78fr 1.22fr;
  overflow: hidden;
  border: 1px solid rgba(199,168,106,.30);
  border-radius: 30px;
  background: #fff;
  box-shadow: 0 38px 100px rgba(0,0,0,.34);
}
.radio-promo-close {
  position: absolute;
  z-index: 4;
  top: 16px;
  right: 17px;
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: 50%;
  background: rgba(11,40,80,.08);
  color: var(--blue-deep);
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}
.radio-promo-brand {
  min-height: 410px;
  display: grid;
  place-items: center;
  padding: 50px;
  background:
    radial-gradient(circle at 50% 44%, rgba(199,168,106,.14), transparent 45%),
    var(--blue-deep);
}
.radio-promo-brand img {
  width: min(100%, 270px);
  max-height: 285px;
  object-fit: contain;
  filter: drop-shadow(0 15px 30px rgba(0,0,0,.20));
}
.radio-promo-content {
  align-self: center;
  padding: 55px 56px;
}
.radio-promo-content h2 {
  color: var(--blue-deep);
  font-size: clamp(48px, 5vw, 67px);
  line-height: .90;
}
.radio-promo-content > p:not(.eyebrow) {
  max-width: 490px;
  margin: 22px 0 0;
  color: #425066;
  font-size: 18px;
  line-height: 27px;
  letter-spacing: .3px;
}
.radio-promo-actions {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  margin-top: 30px;
}
.radio-promo-actions .btn span {
  margin-right: 7px;
  font-size: 12px;
}
.radio-promo-note {
  display: block;
  margin-top: 21px;
  color: #858b91;
  font-size: 12px;
  line-height: 18px;
}

/* Mantém Rádio e WhatsApp separados */
.whatsapp-float {
  right: 24px;
  bottom: 24px;
}

@media (max-width: 720px) {
  .radio-float {
    left: 14px;
    bottom: 14px;
    min-height: 50px;
    padding: 6px 10px 6px 6px;
  }
  .radio-float-icon {
    width: 37px;
    height: 37px;
  }
  .radio-float-copy {
    display: none;
  }
  .radio-float-live {
    left: 40px;
    top: 4px;
  }

  .whatsapp-float {
    right: 14px;
    bottom: 14px;
  }

  .radio-promo {
    padding: 14px;
  }
  .radio-promo-card {
    grid-template-columns: 1fr;
    max-height: 92vh;
    overflow-y: auto;
    border-radius: 23px;
  }
  .radio-promo-brand {
    min-height: 220px;
    padding: 32px;
  }
  .radio-promo-brand img {
    width: min(58%, 190px);
    max-height: 170px;
  }
  .radio-promo-content {
    padding: 34px 25px 38px;
  }
  .radio-promo-content h2 {
    font-size: clamp(46px, 15vw, 62px);
  }
}


/* ==========================================================
   V30 — CONFISSÕES E ORIENTAÇÃO ESPIRITUAL
   ========================================================== */

.confessions-page {
  background: var(--paper);
  color: var(--ink);
}

/* Hero */
.confessions-hero {
  padding: 155px 0 90px;
  background:
    radial-gradient(circle at 85% 10%, rgba(199,168,106,.13), transparent 28%),
    var(--ivory);
}
.confessions-hero-grid {
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  gap: 78px;
  align-items: center;
}
.confessions-hero h1 {
  max-width: 780px;
  color: var(--blue-deep);
  font-size: clamp(66px, 8vw, 108px);
  line-height: .86;
}
.confessions-hero-copy > p:not(.eyebrow) {
  max-width: 650px;
  margin: 25px 0 0;
  color: #425066;
  font-size: 18px;
  line-height: 27px;
  letter-spacing: .3px;
}
.confessions-hero-actions {
  display: flex;
  align-items: center;
  gap: 22px;
  flex-wrap: wrap;
  margin-top: 34px;
}
.confessions-hero-photo {
  position: relative;
  min-height: 520px;
  overflow: hidden;
  border-radius: 30px;
  box-shadow: 0 30px 78px rgba(7,27,53,.13);
}
.confessions-hero-photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.confessions-hero-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(5,25,49,.75), rgba(5,25,49,.03) 64%);
}
.confessions-hero-photo span {
  position: absolute;
  z-index: 2;
  left: 28px;
  right: 28px;
  bottom: 26px;
  color: #fff;
  font-family: var(--font-display);
  font-size: 30px;
  line-height: 1.05;
}
.confessions-hero-photo small {
  display: block;
  margin-bottom: 7px;
  color: var(--gold-light);
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
}

/* Cabeçalho */
.confessions-heading {
  display: grid;
  grid-template-columns: 1fr .72fr;
  gap: 74px;
  align-items: end;
  margin-bottom: 48px;
}
.confessions-heading h2 {
  color: var(--blue-deep);
  font-size: clamp(52px, 6vw, 80px);
}
.confessions-heading > p {
  max-width: 540px;
  margin: 0 0 6px;
  color: #425066;
  font-size: 18px;
  line-height: 27px;
  letter-spacing: .3px;
}

/* Dias */
.confessions-schedule {
  background: #fff;
}
.confessions-days {
  display: grid;
  gap: 14px;
}
.confessions-day {
  overflow: hidden;
  border: 1px solid rgba(11,40,80,.09);
  border-radius: 23px;
  background: #fff;
  box-shadow: 0 14px 38px rgba(8,27,52,.045);
}
.confessions-day > header {
  min-height: 92px;
  display: grid;
  grid-template-columns: 75px 1fr;
  gap: 22px;
  align-items: center;
  padding: 17px 26px;
  background: var(--blue-deep);
  color: #fff;
}
.confessions-day > header > span {
  color: var(--gold-light);
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .16em;
}
.confessions-day > header small {
  display: block;
  color: rgba(255,255,255,.50);
  font-family: var(--font-sans);
  font-size: 12px;
  line-height: 15px;
  text-transform: uppercase;
  letter-spacing: .1em;
}
.confessions-day > header h3 {
  margin-top: 2px;
  color: #fff;
  font-size: 32px;
  line-height: 1;
}
.confessions-slot {
  display: grid;
  grid-template-columns: 155px 1fr auto;
  gap: 26px;
  align-items: center;
  min-height: 105px;
  padding: 21px 28px;
  border-top: 1px solid rgba(11,40,80,.08);
}
.confessions-slot time {
  color: var(--gold);
  font-family: var(--font-display);
  font-size: 27px;
  line-height: 1;
}
.confessions-slot strong {
  display: block;
  color: var(--blue-deep);
  font-family: var(--font-sans);
  font-size: 18px;
  line-height: 27px;
  letter-spacing: .3px;
  font-weight: 500;
}
.confessions-slot p {
  margin: 2px 0 0;
  color: #687078;
  font-size: 15px;
  line-height: 22.5px;
}
.confessions-slot.featured {
  background: rgba(199,168,106,.065);
}
.confessions-badge {
  padding: 6px 10px;
  border: 1px solid rgba(11,40,80,.10);
  border-radius: 999px;
  color: #59636d;
  background: #fff;
  font-family: var(--font-sans);
  font-size: 12px;
  line-height: 15px;
  font-weight: 500;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.confessions-day.saturday {
  border-color: rgba(199,168,106,.40);
}

/* Pastoral da Escuta */
.confessions-listen {
  padding: 105px 0;
  color: #fff;
  background:
    radial-gradient(circle at 85% 5%, rgba(199,168,106,.15), transparent 26%),
    var(--blue-deep);
}
.confessions-listen-grid {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 85px;
  align-items: center;
}
.confessions-listen h2 {
  max-width: 620px;
  color: #fff;
  font-size: clamp(50px, 5.6vw, 76px);
}
.confessions-listen-grid > div:last-child p {
  max-width: 680px;
  margin: 0 0 28px;
  color: rgba(255,255,255,.72);
  font-size: 18px;
  line-height: 27px;
  letter-spacing: .3px;
}

/* Localização limpa */
.confessions-location {
  background: var(--ivory);
}
.confessions-location-grid {
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  gap: 72px;
  align-items: center;
}
.confessions-location-photo {
  min-height: 500px;
  overflow: hidden;
  border-radius: 28px;
  box-shadow: 0 28px 72px rgba(7,27,53,.10);
}
.confessions-location-photo img {
  width: 100%;
  height: 100%;
  min-height: 500px;
  object-fit: cover;
}
.confessions-location-copy h2 {
  color: var(--blue-deep);
  font-size: clamp(48px, 5.4vw, 74px);
}
.confessions-location-copy address {
  margin-top: 23px;
  color: var(--blue-deep);
  font-style: normal;
  font-size: 21px;
  line-height: 31px;
}
.confessions-location-copy > p:not(.eyebrow) {
  max-width: 580px;
  margin: 21px 0 0;
  color: #425066;
  font-size: 16px;
  line-height: 24px;
}
.confessions-location-actions {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  margin-top: 28px;
}

/* Nota final */
.confessions-note {
  padding: 0 0 95px;
  background: var(--ivory);
}
.confessions-note-card {
  display: grid;
  grid-template-columns: 190px 1fr auto;
  gap: 30px;
  align-items: center;
  padding: 28px 32px;
  border: 1px solid rgba(11,40,80,.09);
  border-radius: 20px;
  background: #fff;
}
.confessions-note-card > span {
  color: var(--gold);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.confessions-note-card p {
  margin: 0;
  color: #425066;
  font-size: 15px;
  line-height: 22.5px;
}
.confessions-note-card a {
  color: var(--blue-deep);
  font-size: 13px;
  font-weight: 500;
  text-decoration: none;
}

@media (max-width: 980px) {
  .confessions-hero-grid,
  .confessions-heading,
  .confessions-listen-grid,
  .confessions-location-grid {
    grid-template-columns: 1fr;
    gap: 42px;
  }
  .confessions-hero-photo { min-height: 430px; }
  .confessions-note-card { grid-template-columns: 1fr; gap: 12px; }
}

@media (max-width: 720px) {
  .confessions-hero { padding-top: 135px; }
  .confessions-hero h1 { font-size: clamp(58px, 18vw, 84px); }
  .confessions-slot {
    grid-template-columns: 1fr auto;
    gap: 12px 20px;
    padding: 22px;
  }
  .confessions-slot time { grid-column: 1 / 2; }
  .confessions-slot .confessions-badge {
    grid-column: 2 / 3;
    grid-row: 1;
    justify-self: end;
  }
  .confessions-slot > div {
    grid-column: 1 / -1;
  }
  .confessions-location-photo,
  .confessions-location-photo img {
    min-height: 350px;
  }
}


/* ==========================================================
   V31 — CTA IGREJA EM CÉLULAS
   Dourado em repouso; azul quando acionado.
   ========================================================== */

.cells-heading-action .btn-outline-dark {
  border-color: var(--gold);
  background: var(--gold);
  color: var(--blue-deep);
  box-shadow: 0 10px 26px rgba(199,168,106,.20);
  transition:
    background .22s ease,
    border-color .22s ease,
    color .22s ease,
    transform .22s ease,
    box-shadow .22s ease;
}

.cells-heading-action .btn-outline-dark:hover,
.cells-heading-action .btn-outline-dark:focus-visible,
.cells-heading-action .btn-outline-dark:active {
  border-color: var(--blue-deep);
  background: var(--blue-deep);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 14px 32px rgba(11,40,80,.20);
}

.cells-heading-action .btn-outline-dark:active {
  transform: translateY(0);
}


/* V32 — sombra levemente mais presente nas colmeias */
.cell-card {
  filter:
    drop-shadow(0 9px 14px rgba(9,31,57,.115))
    drop-shadow(0 2px 4px rgba(9,31,57,.045));
}
.cell-card:hover {
  filter:
    drop-shadow(0 23px 30px rgba(9,31,57,.18))
    drop-shadow(0 4px 7px rgba(9,31,57,.07));
}


/* ==========================================================
   V33 — BOTÕES DOURADOS
   Texto branco para aumentar contraste e presença.
   ========================================================== */

.btn-gold {
  color: #fff;
}

.btn-gold:hover,
.btn-gold:focus-visible,
.btn-gold:active {
  color: #fff;
}

/* CTA da área Igreja em Células */
.cells-heading-action .btn-outline-dark {
  color: #fff;
}

/* Ícone de play sobre o círculo dourado da Rádio Web */
.radio-float-play {
  color: #fff;
}


/* ==========================================================
   V34 — LEGIBILIDADE DOS TEXTOS MENORES
   Mínimo absoluto: 12px.
   Informações auxiliares legíveis: 13px.
   ========================================================== */

.hero-card-kicker,
.schedule-row small,
.community-label small,
.pastoral-card-foot,
.form-note,
.pix-qr-panel small,
.group-card-body small,
.camp-highlight-photo small,
.camp20-card-body small,
.camp20-source-alert strong,
.cells-info-hero-mark small,
.musicians-schedule-head span,
.confessions-hero-photo small,
.confessions-day > header > span,
.confessions-day > header small,
.confessions-badge,
.confessions-note-card > span {
  font-size: 13px;
  line-height: 19.5px;
}

/* Badges e identificadores muito compactos permanecem em 12px */
.camp20-flag,
.camp20-event small,
.camp20-detail-meta small,
.camp20-contact-warning,
.cells-info-es li span,
.radio-promo-actions .btn span {
  font-size: 12px;
  line-height: 18px;
}


/* ==========================================================
   V34 — BOTÃO FLUTUANTE DA RÁDIO
   Somente logo + “Clique Ao Vivo”.
   ========================================================== */

.radio-float {
  min-height: 54px;
  gap: 9px;
  padding: 6px 15px 6px 6px;
  text-decoration: none;
}

.radio-float-live,
.radio-float-play {
  display: none !important;
}

.radio-float-icon {
  width: 42px;
  height: 42px;
}

.radio-float-copy {
  display: block;
}

.radio-float-copy small {
  display: none;
}

.radio-float-copy strong {
  margin: 0;
  color: #fff;
  font-family: var(--font-sans);
  font-size: 13px;
  line-height: 19.5px;
  font-weight: 500;
  letter-spacing: .15px;
  white-space: nowrap;
}

@media (max-width: 720px) {
  .radio-float {
    min-height: 48px;
    padding: 5px 12px 5px 5px;
  }

  .radio-float-icon {
    width: 38px;
    height: 38px;
  }

  .radio-float-copy {
    display: block;
  }

  .radio-float-copy strong {
    font-size: 12px;
    line-height: 18px;
  }
}


/* ==========================================================
   V35 — RODAPÉ + RÁDIO WEB
   ========================================================== */

/* Mantém os flutuantes, mas cria espaço e centraliza o rodapé. */
.site-footer {
  padding-bottom: 92px;
}

.footer-bottom {
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  text-align: center;
  padding-left: 180px;
  padding-right: 180px;
}

.footer-bottom span,
.footer-bottom a {
  text-align: center;
}

/* Evita que links inferiores cheguem aos botões flutuantes. */
.footer-links {
  padding-bottom: 8px;
}

/* Rádio: controle interno, sem aparência de link externo. */
.radio-float {
  border: 1px solid rgba(199,168,106,.56);
  font-family: var(--font-sans);
}

.radio-float.is-playing {
  background: #103c68;
  border-color: var(--gold);
  box-shadow: 0 18px 46px rgba(5,24,46,.30);
}

.radio-float.is-playing .radio-float-icon {
  box-shadow: 0 0 0 2px rgba(199,168,106,.55);
}

.radio-listen-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  cursor: pointer;
}

.radio-listen-btn.is-playing {
  background: var(--gold);
  border-color: var(--gold);
  color: #fff;
}

/* Popup: a logo passa a ter fundo claro e tamanho controlado. */
.radio-promo-card {
  grid-template-columns: .74fr 1.26fr;
}

.radio-promo-brand {
  min-height: 410px;
  padding: 48px 34px;
  background:
    radial-gradient(circle at 50% 46%, rgba(199,168,106,.09), transparent 56%),
    #fbfaf7;
  border-right: 1px solid rgba(11,40,80,.08);
}

.radio-promo-brand img {
  width: min(88%, 255px);
  height: auto;
  max-height: 290px;
  object-fit: contain;
  border-radius: 18px;
  filter: none;
  box-shadow: 0 18px 42px rgba(7,27,53,.07);
}

.radio-promo-content .text-link {
  white-space: nowrap;
}

/* Engine sonoro fica invisível e nunca altera o layout. */
#abadia-radio-engine {
  position: fixed !important;
  width: 1px !important;
  height: 1px !important;
  left: -10000px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Tablet */
@media (max-width: 980px) {
  .footer-bottom {
    padding-left: 110px;
    padding-right: 110px;
  }
}

/* Celular: texto do rodapé fica acima e entre os dois flutuantes. */
@media (max-width: 720px) {
  .site-footer {
    padding-bottom: 106px;
  }

  .footer-bottom {
    align-items: center;
    padding-left: 68px;
    padding-right: 68px;
  }

  .radio-promo-card {
    grid-template-columns: 1fr;
  }

  .radio-promo-brand {
    min-height: 205px;
    padding: 28px;
    border-right: 0;
    border-bottom: 1px solid rgba(11,40,80,.08);
  }

  .radio-promo-brand img {
    width: min(52%, 175px);
    max-height: 165px;
    box-shadow: 0 12px 30px rgba(7,27,53,.06);
  }

  .radio-promo-content .text-link {
    white-space: normal;
  }
}


/* ==========================================================
   V36 — CONTRASTE E CONSISTÊNCIA GLOBAL
   Corrige textos azul sobre fundo azul e padroniza micro-links.
   ========================================================== */

/* Blocos de fundo azul-marinho: rótulos/eyebrows nunca ficam azuis. */
:is(
  .benefactor,
  .camp-highlight,
  .camp20-agenda,
  .camp20-nucleus,
  .camp20-site,
  .camp-site-story,
  .cells-info-history,
  .cells-info-es,
  .cells-info-number-card,
  .cells-info-living,
  .confessions-listen,
  .site-footer
) .eyebrow {
  color: var(--gold-light) !important;
}

/* Correção específica observada em "Os Cinco Es". */
.cells-info-es .eyebrow {
  color: var(--gold-light) !important;
}

/* Links sobre superfícies escuras recebem contraste suficiente. */
:is(
  .benefactor,
  .camp-highlight,
  .camp20-agenda,
  .camp20-nucleus,
  .camp20-site,
  .camp-site-story,
  .cells-info-history,
  .cells-info-es,
  .cells-info-number-card,
  .cells-info-living,
  .confessions-listen,
  .site-footer
) :is(.text-link, .project-back) {
  color: var(--gold-light);
}

/* Navegação e links auxiliares: mesma família e escala em todo o projeto. */
.main-nav a {
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 22.5px;
  font-weight: 500;
}

.footer-links a {
  font-family: var(--font-sans);
  font-size: 14px;
  line-height: 21px;
  font-weight: 400;
}

:is(
  .text-link,
  .project-back,
  .pastoral-card-foot,
  .group-card-body span,
  .camp20-card-link,
  .confessions-note-card a
) {
  font-family: var(--font-sans);
  font-size: 13px;
  line-height: 19.5px;
}

/* Textos claros em painéis escuros. */
.cells-info-es > div > p:not(.eyebrow),
.cells-info-history p,
.cells-info-living p,
.camp20-agenda p,
.camp20-nucleus p,
.confessions-listen p {
  color: rgba(255,255,255,.76);
}

/* Links do rodapé nunca ficam escondidos pelo baixo contraste. */
.site-footer a {
  color: rgba(255,255,255,.88);
}
.site-footer a:hover,
.site-footer a:focus-visible {
  color: var(--gold-light);
}

@media (max-width: 820px) {
  .main-nav a {
    font-size: 17px;
    line-height: 25.5px;
  }
}


/* ==========================================================
   V37 — ABADIA RÁDIO WEB
   Página /radio integrada ao novo portal
   ========================================================== */
.radio-page .site-header.is-scrolled {
  background: rgba(246, 243, 236, 0.94);
}

.radio-hero {
  padding-top: 9rem;
}

.radio-hero-grid,
.radio-player-grid,
.radio-overview-grid,
.radio-cta-band-grid {
  display: grid;
  gap: 2rem;
}

.radio-hero-grid {
  grid-template-columns: minmax(0, 1.05fr) minmax(340px, .95fr);
  align-items: center;
}

.radio-hero-copy p:not(.eyebrow),
.radio-overview-card p,
.radio-player-card p,
.radio-programming-card li span,
.radio-cta-band-grid p {
  font-size: 18px;
  line-height: 1.75;
}

.radio-hero-actions,
.radio-player-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
  margin-top: 1.5rem;
}

.radio-hero-media {
  position: relative;
}

.radio-hero-photo {
  width: 100%;
  aspect-ratio: 10 / 8;
  object-fit: cover;
  border-radius: 2rem;
  box-shadow: 0 28px 72px rgba(5, 20, 38, 0.18);
}

.radio-hero-logo-card {
  position: absolute;
  right: 1.5rem;
  bottom: 1.5rem;
  display: grid;
  gap: 1rem;
  width: min(360px, calc(100% - 3rem));
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(11, 40, 80, 0.08);
  border-radius: 1.5rem;
  padding: 1rem;
  box-shadow: 0 18px 42px rgba(5,20,38,.12);
  backdrop-filter: blur(10px);
}

.radio-hero-logo-card img {
  width: 100%;
  max-height: 124px;
  object-fit: contain;
  border-radius: 1rem;
}

.radio-hero-logo-card span {
  display: grid;
  gap: .35rem;
  font-size: 15px;
  line-height: 1.6;
}

.radio-hero-logo-card small,
.radio-player-note {
  font-family: var(--font-sans);
  font-size: 13px;
  line-height: 1.6;
  color: var(--text-muted);
}

.radio-overview {
  padding: 0 0 1rem;
}

.radio-overview-grid,
.radio-player-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.radio-overview-card,
.radio-player-card,
.radio-programming-card {
  background: #fff;
  border: 1px solid var(--border-soft);
  border-radius: 2rem;
  padding: 2rem;
  box-shadow: 0 22px 52px rgba(5,20,38,.06);
}

.radio-player-card,
.radio-programming-card {
  min-height: 100%;
}

.radio-programming-card ul {
  list-style: none;
  display: grid;
  gap: 1rem;
  margin-top: 1.5rem;
}

.radio-programming-card li {
  display: grid;
  gap: .3rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--border-soft);
}

.radio-programming-card li:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.radio-programming-card strong {
  font-size: 20px;
}

.radio-cta-band {
  padding: 2rem 0 5rem;
}

.radio-cta-band-grid {
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  align-items: center;
  background: var(--navy);
  color: #fff;
  border-radius: 2rem;
  padding: 2.5rem;
}

.radio-cta-band-grid h2,
.radio-cta-band-grid p,
.radio-cta-band-grid .eyebrow.light {
  color: #fff;
}

.btn-outline.radio-page-link {
  border-color: rgba(11,40,80,.16);
  color: var(--navy);
}

@media (max-width: 980px) {
  .radio-hero-grid,
  .radio-overview-grid,
  .radio-player-grid,
  .radio-cta-band-grid {
    grid-template-columns: 1fr;
  }

  .radio-hero {
    padding-top: 8rem;
  }
}

@media (max-width: 640px) {
  .radio-hero-copy p:not(.eyebrow),
  .radio-overview-card p,
  .radio-player-card p,
  .radio-programming-card li span,
  .radio-cta-band-grid p {
    font-size: 16px;
  }

  .radio-overview-card,
  .radio-player-card,
  .radio-programming-card,
  .radio-cta-band-grid {
    padding: 1.4rem;
  }

  .radio-hero-logo-card {
    position: static;
    width: 100%;
    margin-top: 1rem;
  }
}


/* ==========================================================
   V38 — PÁGINA RÁDIO WEB
   Hero com a foto principal do Santuário em tela cheia.
   ========================================================== */

.radio-page .site-header {
  background: transparent;
  color: #fff;
}

.radio-page .site-header.is-scrolled {
  background: rgba(246,243,236,.97);
  color: var(--blue-deep);
}

.radio-full-hero {
  position: relative;
  min-height: 760px;
  overflow: hidden;
  background: var(--blue-deep);
}

.radio-full-hero-bg {
  position: absolute;
  inset: 0;
  background: url("assets/hero-santuario.jpg") center center / cover no-repeat;
}

.radio-full-hero-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(3,20,42,.88) 0%, rgba(3,20,42,.62) 45%, rgba(3,20,42,.20) 78%),
    linear-gradient(0deg, rgba(3,20,42,.32), transparent 50%);
}

.radio-full-hero-content {
  position: relative;
  z-index: 2;
  min-height: 760px;
  display: grid;
  grid-template-columns: 1fr .72fr;
  gap: 70px;
  align-items: center;
  padding-top: 110px;
  color: #fff;
}

.radio-full-copy h1 {
  max-width: 760px;
  color: #fff;
  font-size: clamp(72px, 8.5vw, 124px);
  line-height: .84;
}

.radio-full-copy > p:not(.eyebrow) {
  max-width: 620px;
  margin: 28px 0 0;
  color: rgba(255,255,255,.78);
  font-size: 18px;
  line-height: 27px;
}

.radio-full-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 34px;
}

.radio-full-logo {
  justify-self: end;
  width: min(430px, 100%);
  padding: 26px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 30px;
  background: rgba(7,30,58,.70);
  backdrop-filter: blur(14px);
  box-shadow: 0 28px 75px rgba(0,0,0,.22);
}

.radio-full-logo img {
  display: block;
  width: 100%;
  max-height: 300px;
  object-fit: contain;
  border-radius: 20px;
  background: #fff;
}

.radio-full-logo > div {
  display: grid;
  gap: 5px;
  margin-top: 18px;
}

.radio-full-logo small {
  color: var(--gold-light);
  font-size: 13px;
  line-height: 19.5px;
}

.radio-full-logo strong {
  color: #fff;
  font-size: 20px;
  font-weight: 500;
}

/* Player */
.radio-live {
  background: var(--ivory);
}

.radio-live-grid {
  display: grid;
  grid-template-columns: .82fr 1.18fr;
  gap: 70px;
  align-items: center;
}

.radio-live-copy h2,
.radio-about h2 {
  color: var(--blue-deep);
  font-size: clamp(52px, 5.7vw, 78px);
}

.radio-live-copy > p:not(.eyebrow),
.radio-about-copy p {
  color: #425066;
  font-size: 18px;
  line-height: 27px;
  letter-spacing: .3px;
}

.radio-page-play {
  margin-top: 22px;
}

.radio-live-helper {
  max-width: 520px;
  margin-top: 17px;
  font-size: 13px !important;
  line-height: 19.5px !important;
  color: #6e7780 !important;
}

.radio-live-player {
  position: relative;
  min-height: 470px;
  overflow: hidden;
  border-radius: 28px;
  border: 1px solid rgba(11,40,80,.10);
  background: var(--blue-deep);
  box-shadow: 0 26px 68px rgba(7,27,53,.12);
}

.radio-live-placeholder {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 12px;
  padding: 40px;
  text-align: center;
  color: #fff;
  transition: opacity .25s ease, visibility .25s ease;
}

.radio-live-placeholder.is-hidden {
  opacity: 0;
  visibility: hidden;
}

.radio-live-placeholder img {
  width: min(260px, 68%);
  border-radius: 18px;
}

.radio-live-placeholder span {
  margin-top: 8px;
  font-family: var(--font-display);
  font-size: 34px;
}

.radio-live-placeholder small {
  max-width: 380px;
  color: rgba(255,255,255,.64);
  font-size: 13px;
  line-height: 19.5px;
}

.radio-live-frame {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  opacity: 0;
  visibility: hidden;
  background: #fff;
  transition: opacity .25s ease;
}

.radio-live-frame.is-loaded {
  opacity: 1;
  visibility: visible;
}

/* Sobre */
.radio-about {
  background: #fff;
}

.radio-about-grid {
  display: grid;
  grid-template-columns: .82fr 1.18fr;
  gap: 80px;
  align-items: start;
}

.radio-about-copy {
  max-width: 760px;
}

.radio-about-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 22px;
  margin-top: 30px;
}

@media (max-width: 980px) {
  .radio-full-hero-content,
  .radio-live-grid,
  .radio-about-grid {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  .radio-full-logo {
    justify-self: start;
    width: min(420px, 100%);
  }

  .radio-full-hero {
    min-height: 900px;
  }

  .radio-full-hero-content {
    min-height: 900px;
    align-content: center;
  }
}

@media (max-width: 720px) {
  .radio-full-hero {
    min-height: 780px;
  }

  .radio-full-hero-content {
    min-height: 780px;
    padding-top: 125px;
  }

  .radio-full-copy h1 {
    font-size: clamp(60px, 17vw, 88px);
  }

  .radio-full-logo {
    padding: 18px;
  }

  .radio-full-logo img {
    max-height: 220px;
  }

  .radio-live-player {
    min-height: 360px;
  }
}


/* ==========================================================
   V39 — RÁDIO SIMPLES E PLAYER INLINE
   ========================================================== */

.radio-simple-page .site-header {
  background: rgba(246,243,236,.97);
  color: var(--blue-deep);
}

.radio-simple-main {
  min-height: 100vh;
}

.radio-simple-hero {
  position: relative;
  min-height: 100vh;
  display: grid;
  align-items: center;
  overflow: hidden;
  background: var(--blue-deep);
}

.radio-simple-bg {
  position: absolute;
  inset: 0;
  background: url("assets/hero-santuario.jpg") center center / cover no-repeat;
  filter: saturate(.92);
}

.radio-simple-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(2,22,44,.42), rgba(2,22,44,.68)),
    linear-gradient(90deg, rgba(2,22,44,.68), rgba(2,22,44,.24));
  backdrop-filter: blur(1.5px);
}

.radio-simple-content {
  position: relative;
  z-index: 2;
  width: min(860px, calc(100% - 40px));
  display: grid;
  justify-items: center;
  gap: 22px;
  padding-top: 120px;
  padding-bottom: 65px;
  text-align: center;
  color: #fff;
}

.radio-simple-logo {
  width: min(250px, 45vw);
  padding: 14px;
  border-radius: 50%;
  background: rgba(255,255,255,.96);
  box-shadow: 0 22px 58px rgba(0,0,0,.24);
}

.radio-simple-logo img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  border-radius: 50%;
}

.radio-simple-text h1 {
  color: #fff;
  font-size: clamp(58px, 8vw, 94px);
  line-height: .88;
}

.radio-simple-text > p:not(.eyebrow) {
  margin-top: 15px;
  color: rgba(255,255,255,.82);
  font-size: 18px;
  line-height: 27px;
}

.radio-simple-player {
  width: min(680px, 100%);
  overflow: hidden;
  border-radius: 24px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 22px 58px rgba(0,0,0,.24);
}

.radio-simple-player iframe {
  display: block;
  width: 100%;
  min-height: 250px;
  background: #fff;
}

.radio-simple-back {
  color: rgba(255,255,255,.82);
  font-family: var(--font-sans);
  font-size: 14px;
  line-height: 21px;
  text-decoration: none;
}

.radio-simple-back:hover {
  color: var(--gold-light);
}

/* Popup: player aparece no próprio modal, sem nova tela. */
.radio-promo-card-simple {
  width: min(900px, 94vw);
}

.radio-inline-player {
  display: none;
  width: 100%;
  margin-top: 24px;
  overflow: hidden;
  border: 1px solid rgba(11,40,80,.10);
  border-radius: 20px;
  background: #fff;
}

.radio-inline-player.is-loaded {
  display: block;
}

.radio-inline-player iframe {
  display: block;
  width: 100%;
  height: 255px;
  border: 0;
  background: #fff;
}

.radio-promo-card-simple .radio-promo-content {
  align-self: center;
}

.radio-promo-card-simple .radio-promo-brand img {
  width: min(88%, 250px);
  max-height: 290px;
}

@media (max-width: 720px) {
  .radio-simple-content {
    padding-top: 125px;
  }

  .radio-simple-logo {
    width: min(190px, 54vw);
  }

  .radio-simple-text h1 {
    font-size: clamp(50px, 15vw, 72px);
  }

  .radio-simple-player iframe,
  .radio-inline-player iframe {
    height: 300px;
  }
}


/* ==========================================================
   V40 — PLAYER DIRETO ABADIA RÁDIO WEB
   ========================================================== */

.radio-native-player {
  display: block;
  width: 100%;
  height: 72px;
  border-radius: 999px;
  background: #fff;
}

.radio-simple-player {
  padding: 16px;
  background: rgba(255,255,255,.96);
}

.radio-float.is-playing {
  background: #103c68;
  border-color: var(--gold);
}

.radio-listen-btn.is-playing {
  background: var(--gold);
  border-color: var(--gold);
  color: #fff;
}


/* ==========================================================
   V41 — REDES SOCIAIS DA ABADIA RÁDIO WEB
   ========================================================== */

.radio-socials-caption {
  margin-top: 6px;
  color: rgba(255,255,255,.72);
  font-family: var(--font-sans);
  font-size: 13px;
  line-height: 19.5px;
  text-align: center;
}

.radio-socials {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: -8px;
}

.radio-social-link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 46px;
  padding: 9px 15px 9px 10px;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 999px;
  background: rgba(7,30,58,.62);
  color: #fff;
  font-family: var(--font-sans);
  font-size: 13px;
  line-height: 19.5px;
  font-weight: 500;
  text-decoration: none;
  backdrop-filter: blur(10px);
  transition:
    transform .2s ease,
    background .2s ease,
    border-color .2s ease,
    box-shadow .2s ease;
}

.radio-social-link svg {
  width: 28px;
  height: 28px;
  padding: 5px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--gold);
  fill: #fff;
}

.radio-social-link:hover,
.radio-social-link:focus-visible {
  transform: translateY(-2px);
  background: rgba(11,40,80,.88);
  border-color: rgba(200,168,91,.72);
  box-shadow: 0 12px 30px rgba(0,0,0,.18);
  color: #fff;
}

@media (max-width: 620px) {
  .radio-socials {
    gap: 10px;
  }

  .radio-social-link {
    min-width: 46px;
    justify-content: center;
    padding: 9px;
  }

  .radio-social-link span {
    display: none;
  }
}


/* ==========================================================
   V42 — CONTINUIDADE DA RÁDIO
   ========================================================== */

.radio-float.needs-resume {
  border-color: var(--gold);
  box-shadow: 0 14px 38px rgba(7,27,53,.22);
}

.radio-float.needs-resume .radio-float-icon {
  box-shadow: 0 0 0 2px rgba(200,168,91,.48);
}


/* ==========================================================
   V45 — ESCOLA SANTA CECÍLIA
   ========================================================== */

.project-detail-logo img[alt="Escola de Música Santa Cecília"] {
  object-fit: contain;
  background: #fff;
}




/* ==========================================================
   V46 — PASTORAIS + ESTRUTURA DA IGREJA EM CÉLULAS
   ========================================================== */

.cells-structure {
  background:
    radial-gradient(circle at 88% 4%, rgba(200,168,91,.11), transparent 25%),
    var(--paper);
}

.cells-structure-heading {
  display: grid;
  grid-template-columns: .92fr 1.08fr;
  gap: 78px;
  align-items: end;
}

.cells-structure-heading h2,
.cells-directory-intro h2 {
  color: var(--blue-deep);
}

.cells-structure-heading > p,
.cells-directory-intro > p {
  margin: 0;
  color: #5f6974;
  font-size: 18px;
  line-height: 27px;
  letter-spacing: .3px;
}

.cells-leadership-grid {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 18px;
  margin-top: 50px;
}

.cells-leadership-card {
  padding: 30px;
  border: 1px solid rgba(11,40,80,.10);
  border-radius: 26px;
  background: #fff;
  box-shadow: 0 18px 46px rgba(7,27,53,.055);
}

.cells-contact-list {
  display: grid;
  gap: 0;
  margin-top: 18px;
}

.cells-contact-list > div {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 18px;
  align-items: center;
  min-height: 50px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(11,40,80,.08);
}

.cells-contact-list > div:last-child {
  border-bottom: 0;
}

.cells-contact-list strong {
  color: var(--blue-deep);
  font-size: 16px;
  font-weight: 600;
}

.cells-contact-list span {
  color: #65707b;
  font-size: 14px;
  line-height: 21px;
  white-space: nowrap;
}

.cells-directory {
  margin-top: 84px;
}

.cells-directory-intro {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 50px 80px;
  align-items: end;
}

.cells-directory-intro .eyebrow {
  grid-column: 1 / -1;
  margin-bottom: -35px;
}

.cells-day-block {
  margin-top: 48px;
}

.cells-day-head {
  display: grid;
  grid-template-columns: 76px 1fr;
  gap: 18px;
  align-items: center;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(11,40,80,.12);
}

.cells-day-head > span {
  display: grid;
  place-items: center;
  width: 62px;
  height: 62px;
  border-radius: 18px;
  background: var(--blue-deep);
  color: var(--gold-light);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .08em;
}

.cells-day-head small {
  display: block;
  color: #7a828b;
  font-size: 13px;
  line-height: 19.5px;
}

.cells-day-head h3 {
  margin-top: 2px;
  color: var(--blue-deep);
  font-size: 34px;
}

.cells-directory-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 14px;
  margin-top: 22px;
}

.cells-directory-card {
  min-height: 155px;
  padding: 22px;
  border: 1px solid rgba(11,40,80,.09);
  border-radius: 20px;
  background: #fff;
  transition: transform .18s ease, box-shadow .18s ease;
}

.cells-directory-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 38px rgba(7,27,53,.065);
}

.cells-directory-card small {
  color: var(--gold);
  font-size: 12px;
  line-height: 18px;
  font-weight: 600;
  letter-spacing: .04em;
}

.cells-directory-card h4 {
  margin-top: 9px;
  color: var(--blue-deep);
  font-family: var(--font-display);
  font-size: 24px;
  line-height: 1.08;
  font-weight: 400;
}

.cells-directory-card p {
  margin: 11px 0 0;
  color: #68727c;
  font-size: 14px;
  line-height: 21px;
}

.cells-directory-note {
  display: flex;
  gap: 12px;
  max-width: 850px;
  margin: 36px auto 0;
  padding-top: 26px;
  border-top: 1px solid rgba(11,40,80,.10);
  justify-content: center;
  text-align: center;
}

.cells-directory-note > span {
  color: var(--gold);
}

.cells-directory-note p {
  margin: 0;
  color: #777f87;
  font-size: 13px;
  line-height: 19.5px;
}

@media (max-width: 980px) {
  .cells-structure-heading,
  .cells-leadership-grid,
  .cells-directory-intro {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .cells-directory-intro .eyebrow {
    grid-column: auto;
    margin-bottom: -18px;
  }

  .cells-directory-grid {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
}

@media (max-width: 620px) {
  .cells-contact-list > div {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .cells-contact-list span {
    white-space: normal;
  }

  .cells-directory-grid {
    grid-template-columns: 1fr;
  }

  .cells-day-head {
    grid-template-columns: 60px 1fr;
  }

  .cells-day-head > span {
    width: 52px;
    height: 52px;
  }
}


/* ==========================================================
   V47 — COLMEIA NA ORDEM OFICIAL DAS CÉLULAS
   ========================================================== */

.cell-name-only {
  padding: 24px 28px;
}

.cell-name-only-content {
  position: relative;
  z-index: 2;
  display: grid;
  gap: 8px;
  place-items: center;
  width: 82%;
  text-align: center;
}

.cell-name-only-content small {
  color: var(--gold);
  font-family: var(--font-sans);
  font-size: 12px;
  line-height: 18px;
  font-weight: 600;
  letter-spacing: .10em;
  text-transform: uppercase;
}

.cell-name-only-content strong {
  color: var(--blue-deep);
  font-family: var(--font-display);
  font-size: clamp(20px, 2vw, 29px);
  line-height: .98;
  font-weight: 400;
}

.cell-name-only:hover .cell-name-only-content strong {
  color: var(--blue);
}

@media (max-width: 820px) {
  .cell-name-only {
    padding: 18px 15px;
  }

  .cell-name-only-content strong {
    font-size: clamp(18px, 3.1vw, 25px);
  }
}

@media (max-width: 560px) {
  .cell-name-only {
    padding: 15px 11px;
  }

  .cell-name-only-content {
    width: 88%;
    gap: 5px;
  }

  .cell-name-only-content strong {
    font-size: clamp(17px, 5.2vw, 23px);
  }
}


/* ==========================================================
   V49 — IDENTIDADE PADRÃO DAS CÉLULAS
   Base visual: El Shaday
   Mesma colmeia, mesma tipografia para o nome e classificação
   apenas em texto fino e discreto.
   ========================================================== */

.cell-standard-card {
  padding: 18px 23px 20px;
}

.cell-standard-content {
  position: relative;
  z-index: 2;
  display: grid;
  place-items: center;
  align-content: center;
  width: 88%;
  text-align: center;
  line-height: 1;
}

.cell-standard-mark {
  width: min(74%, 150px) !important;
  max-width: 150px !important;
  max-height: none !important;
  height: auto;
  margin: 0 auto 7px;
  object-fit: contain;
}

/*
  O lettering da referência El Shaday é um sans leve e neutro.
  Aplicamos a mesma família/medida a todos os nomes, sem variações
  entre logos individuais.
*/
.cell-standard-name {
  display: block;
  max-width: 100%;
  color: #171a1e;
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
  font-size: clamp(20px, 1.75vw, 27px);
  line-height: .98;
  font-weight: 400;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.cell-standard-category {
  display: block;
  margin-top: 8px;
  color: #868d95;
  font-family: var(--font-sans);
  font-size: 12px;
  line-height: 18px;
  font-weight: 400;
  letter-spacing: .09em;
}

.cell-standard-card:hover .cell-standard-name {
  color: var(--blue-deep);
}

/* O hover movimenta o conjunto sem deformar o símbolo. */
.cell-standard-card:hover .cell-standard-mark {
  transform: scale(1.035);
  filter: none;
}

/* Relação completa na página interna: classificação só em texto. */
.cells-directory-category {
  display: block !important;
  color: #8a9097 !important;
  font-family: var(--font-sans);
  font-size: 12px !important;
  line-height: 18px !important;
  font-weight: 400 !important;
  letter-spacing: .08em !important;
}

@media (max-width: 820px) {
  .cell-standard-card {
    padding: 15px 17px 17px;
  }

  .cell-standard-mark {
    width: min(68%, 135px) !important;
    margin-bottom: 5px;
  }

  .cell-standard-name {
    font-size: clamp(18px, 2.65vw, 24px);
  }

  .cell-standard-category {
    margin-top: 6px;
  }
}

@media (max-width: 560px) {
  .cell-standard-card {
    padding: 12px 10px 14px;
  }

  .cell-standard-content {
    width: 91%;
  }

  .cell-standard-mark {
    width: min(66%, 112px) !important;
  }

  .cell-standard-name {
    font-size: clamp(16px, 4.8vw, 22px);
    letter-spacing: -.035em;
  }

  .cell-standard-category {
    margin-top: 5px;
    font-size: 12px;
  }
}


/* ==========================================================
   V50 — ARTES OFICIAIS DAS 33 CÉLULAS
   ========================================================== */
.cell-art-card{padding:12px 16px 14px}.cell-art-logo{position:relative;z-index:2;display:block;width:87%!important;height:88%!important;max-width:none!important;max-height:none!important;object-fit:contain;object-position:center;transition:transform .22s ease}.cell-art-card:hover .cell-art-logo{transform:scale(1.035)}.cells-info-hero-art{display:grid;place-items:center;min-height:440px;padding:22px;border-radius:30px;background:radial-gradient(circle at 45% 38%,rgba(200,168,91,.12),transparent 42%),rgba(255,255,255,.58);overflow:hidden}.cells-info-hero-art-image{display:block;width:min(100%,690px);max-height:490px;object-fit:contain;filter:drop-shadow(0 20px 38px rgba(7,27,53,.10))}.cells-directory-card{align-content:start}.cells-directory-logo{display:block;width:110px;height:92px;margin:-4px auto 10px;object-fit:contain}@media(max-width:820px){.cell-art-card{padding:10px 12px 12px}.cell-art-logo{width:90%!important;height:90%!important}.cells-info-hero-art{min-height:360px}}@media(max-width:560px){.cell-art-card{padding:8px 8px 10px}.cell-art-logo{width:94%!important;height:91%!important}.cells-info-hero-art{min-height:290px;padding:12px}.cells-directory-logo{width:96px;height:82px}}


/* ==========================================================
   V53 — ARTE PRINCIPAL IGREJA EM CÉLULAS
   Usa a versão transparente Mãe | Mistas | Casais | Jovens.
   ========================================================== */

.cells-info-hero-art {
  min-height: 430px;
  padding: 18px 24px;
  background:
    radial-gradient(circle at 50% 45%, rgba(200,168,91,.10), transparent 46%),
    rgba(255,255,255,.44);
}

.cells-info-hero-art-image {
  width: min(100%, 720px);
  max-height: 500px;
  object-fit: contain;
  filter: none;
}

@media (max-width: 720px) {
  .cells-info-hero-art {
    min-height: 310px;
    padding: 12px;
  }

  .cells-info-hero-art-image {
    width: min(100%, 520px);
    max-height: 360px;
  }
}


/* ==========================================================
   V56 — LITURGIA DIÁRIA
   ========================================================== */

.liturgy-page {
  background: var(--paper);
}

.liturgy-hero {
  padding: 158px 0 92px;
  background:
    radial-gradient(circle at 90% 10%, rgba(200,168,91,.13), transparent 27%),
    var(--paper);
}

.liturgy-hero-grid {
  display: grid;
  grid-template-columns: 1.08fr .72fr;
  gap: 78px;
  align-items: center;
}

.liturgy-hero-copy h1 {
  max-width: 760px;
  color: var(--blue-deep);
  font-size: clamp(68px, 7.6vw, 108px);
  line-height: .87;
}

.liturgy-hero-copy > p:not(.eyebrow) {
  max-width: 630px;
  margin-top: 28px;
  color: #596574;
  font-size: 18px;
  line-height: 27px;
  letter-spacing: .3px;
}

.liturgy-hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
  margin-top: 34px;
}

.liturgy-hero-card {
  position: relative;
  min-height: 390px;
  display: grid;
  align-content: center;
  justify-items: center;
  padding: 44px;
  overflow: hidden;
  border-radius: 32px;
  background:
    radial-gradient(circle at 50% 40%, rgba(200,168,91,.24), transparent 35%),
    var(--blue-deep);
  color: #fff;
  text-align: center;
  box-shadow: 0 30px 70px rgba(7,27,53,.14);
}

.liturgy-cross {
  display: grid;
  place-items: center;
  width: 76px;
  height: 76px;
  margin-bottom: 26px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 50%;
  color: var(--gold-light);
  font-size: 28px;
}

.liturgy-hero-card > small {
  max-width: 350px;
  color: rgba(255,255,255,.76);
  font-family: var(--font-text);
  font-size: 20px;
  line-height: 29px;
  font-style: italic;
}

.liturgy-hero-card > strong {
  margin-top: 10px;
  color: var(--gold-light);
  font-size: 13px;
  letter-spacing: .06em;
}

.liturgy-hero-date {
  display: grid;
  gap: 4px;
  margin-top: 44px;
  padding-top: 24px;
  width: 100%;
  border-top: 1px solid rgba(255,255,255,.13);
}

.liturgy-hero-date span {
  color: rgba(255,255,255,.55);
  font-size: 13px;
  text-transform: capitalize;
}

.liturgy-hero-date b {
  color: #fff;
  font-family: var(--font-display);
  font-size: 28px;
  font-weight: 400;
  text-transform: capitalize;
}

.liturgy-daily {
  background: #fff;
}

.liturgy-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 24px;
  margin-bottom: 26px;
}

.liturgy-date-nav {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.liturgy-nav-btn,
.liturgy-today-btn {
  min-height: 46px;
  border: 1px solid rgba(11,40,80,.13);
  background: var(--paper);
  color: var(--blue-deep);
  font-family: var(--font-sans);
  font-size: 14px;
  cursor: pointer;
}

.liturgy-nav-btn {
  width: 48px;
  border-radius: 50%;
  font-size: 20px;
}

.liturgy-today-btn {
  padding: 0 20px;
  border-radius: 999px;
  font-weight: 600;
}

.liturgy-date-field {
  display: grid;
  gap: 7px;
}

.liturgy-date-field span {
  color: #707982;
  font-size: 12px;
  line-height: 18px;
}

.liturgy-date-field input {
  min-height: 46px;
  padding: 0 14px;
  border: 1px solid rgba(11,40,80,.14);
  border-radius: 12px;
  background: var(--paper);
  color: var(--blue-deep);
  font: inherit;
}

.liturgy-status {
  margin: 0 0 18px;
  color: #6a737c;
  font-size: 13px;
  line-height: 19.5px;
}

.liturgy-status.is-ready {
  display: none;
}

.liturgy-status.is-error {
  display: grid;
  gap: 7px;
  padding: 22px 24px;
  border: 1px solid rgba(164,62,52,.16);
  border-radius: 18px;
  background: rgba(164,62,52,.055);
  color: #6d4b46;
}

.liturgy-status.is-error strong {
  color: #713b35;
}

.liturgy-error-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  margin-top: 10px;
}

.liturgy-main-card {
  padding: 38px;
  border: 1px solid rgba(11,40,80,.10);
  border-radius: 30px;
  background: var(--paper);
}

.liturgy-main-head {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 32px;
  align-items: center;
}

.liturgy-main-head h2 {
  color: var(--blue-deep);
  font-size: clamp(42px, 5vw, 68px);
}

.liturgy-date-text {
  margin-top: 10px;
  color: #69737d;
  font-size: 15px;
}

.liturgy-color-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 15px;
  border: 1px solid rgba(11,40,80,.10);
  border-radius: 999px;
  background: #fff;
  color: #606a74;
  font-size: 13px;
  white-space: nowrap;
}

.liturgy-color-badge i {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #b8b8b8;
  box-shadow: 0 0 0 3px rgba(0,0,0,.04);
}

.liturgy-color-badge[data-color="verde"] i { background: #3a7b4f; }
.liturgy-color-badge[data-color="vermelho"] i { background: #aa3434; }
.liturgy-color-badge[data-color="roxo"] i { background: #70427e; }
.liturgy-color-badge[data-color="rosa"] i { background: #d8849b; }
.liturgy-color-badge[data-color="branco"] i {
  background: #fff;
  border: 1px solid #cbc6bb;
}

.liturgy-antiphon-highlight {
  margin-top: 28px;
  padding: 22px 24px;
  border-left: 3px solid var(--gold);
  background: rgba(200,168,91,.08);
}

.liturgy-antiphon-highlight small {
  color: var(--gold);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.liturgy-antiphon-highlight p {
  margin: 9px 0 0;
  color: #505d69;
  font-family: var(--font-text);
  font-size: 18px;
  line-height: 27px;
  font-style: italic;
}

.liturgy-readings {
  background: var(--paper);
}

.liturgy-section-heading {
  display: grid;
  grid-template-columns: .86fr 1.14fr;
  gap: 80px;
  align-items: end;
}

.liturgy-section-heading h2 {
  color: var(--blue-deep);
}

.liturgy-section-heading > p {
  margin: 0;
  color: #626d77;
  font-size: 18px;
  line-height: 27px;
}

.liturgy-readings-list {
  display: grid;
  gap: 18px;
  margin-top: 52px;
}

.liturgy-reading-card {
  overflow: hidden;
  border: 1px solid rgba(11,40,80,.10);
  border-radius: 26px;
  background: #fff;
}

.liturgy-reading-head {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 22px;
  align-items: center;
  padding: 19px 26px;
  border-bottom: 1px solid rgba(11,40,80,.08);
  background: rgba(11,40,80,.025);
}

.liturgy-reading-head > div {
  display: flex;
  align-items: baseline;
  gap: 12px;
}

.liturgy-reading-label {
  color: var(--blue-deep);
  font-size: 14px;
  font-weight: 700;
}

.liturgy-reading-head small {
  color: #8a9198;
  font-size: 12px;
}

.liturgy-reading-head strong {
  color: var(--gold);
  font-size: 14px;
}

.liturgy-reading-body {
  padding: 30px 34px 34px;
}

.liturgy-reading-body h3 {
  margin-bottom: 18px;
  color: var(--blue-deep);
  font-size: 28px;
}

.liturgy-reading-body p {
  margin: 0 0 15px;
  color: #4f5c68;
  font-family: var(--font-text);
  font-size: 18px;
  line-height: 30px;
}

.liturgy-reading-body p:last-child {
  margin-bottom: 0;
}

.liturgy-refrain {
  margin: 0 0 24px;
  padding: 15px 18px;
  border-left: 3px solid var(--gold);
  background: rgba(200,168,91,.07);
  color: var(--blue-deep);
  font-family: var(--font-text);
  font-size: 18px;
  line-height: 27px;
  font-style: italic;
}

.liturgy-loading-card,
.liturgy-empty-card {
  padding: 28px;
  border: 1px solid rgba(11,40,80,.10);
  border-radius: 20px;
  color: #737b83;
  background: #fff;
  font-size: 14px;
  text-align: center;
}

.liturgy-prayers {
  padding: 100px 0;
  background: var(--blue-deep);
}

.liturgy-prayers-grid {
  display: grid;
  grid-template-columns: .76fr 1.24fr;
  gap: 80px;
  align-items: start;
}

.liturgy-prayers-intro h2 {
  color: #fff;
}

.liturgy-prayers-intro > p:not(.eyebrow) {
  max-width: 500px;
  color: rgba(255,255,255,.66);
  font-size: 17px;
  line-height: 26px;
}

.liturgy-prayer-accordion {
  display: grid;
  gap: 10px;
}

.liturgy-prayer-item {
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  background: rgba(255,255,255,.045);
}

.liturgy-prayer-item summary {
  position: relative;
  padding: 19px 50px 19px 22px;
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  list-style: none;
}

.liturgy-prayer-item summary::-webkit-details-marker {
  display: none;
}

.liturgy-prayer-item summary::after {
  content: "+";
  position: absolute;
  right: 22px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--gold-light);
  font-size: 22px;
  font-weight: 300;
}

.liturgy-prayer-item[open] summary::after {
  content: "−";
}

.liturgy-prayer-content {
  padding: 0 22px 22px;
}

.liturgy-prayer-content p {
  margin: 0 0 12px;
  color: rgba(255,255,255,.72);
  font-family: var(--font-text);
  font-size: 17px;
  line-height: 27px;
}

.liturgy-loading-card.dark,
.liturgy-empty-card.dark {
  border-color: rgba(255,255,255,.12);
  background: rgba(255,255,255,.045);
  color: rgba(255,255,255,.55);
}

.liturgy-source {
  padding: 72px 0 96px;
  background: #fff;
}

.liturgy-source-card {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 32px;
  align-items: center;
  padding: 28px 32px;
  border-left: 3px solid var(--gold);
  background: rgba(200,168,91,.07);
}

.liturgy-source-card span {
  color: var(--blue-deep);
  font-size: 14px;
  font-weight: 700;
}

.liturgy-source-card p {
  max-width: 820px;
  margin: 7px 0 0;
  color: #626d77;
  font-size: 15px;
  line-height: 22.5px;
}

@media (max-width: 980px) {
  .liturgy-hero-grid,
  .liturgy-section-heading,
  .liturgy-prayers-grid,
  .liturgy-source-card {
    grid-template-columns: 1fr;
    gap: 38px;
  }

  .liturgy-source-card .btn {
    justify-self: start;
  }
}

@media (max-width: 720px) {
  .liturgy-hero {
    padding: 136px 0 72px;
  }

  .liturgy-hero-copy h1 {
    font-size: clamp(58px, 16vw, 82px);
  }

  .liturgy-hero-card {
    min-height: 330px;
    padding: 30px 24px;
  }

  .liturgy-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .liturgy-date-nav {
    justify-content: center;
  }

  .liturgy-date-field {
    width: 100%;
  }

  .liturgy-date-field input {
    width: 100%;
  }

  .liturgy-main-card {
    padding: 25px 22px;
  }

  .liturgy-main-head {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .liturgy-color-badge {
    width: fit-content;
  }

  .liturgy-reading-head {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 18px 20px;
  }

  .liturgy-reading-body {
    padding: 24px 22px 27px;
  }

  .liturgy-reading-body p,
  .liturgy-refrain {
    font-size: 17px;
    line-height: 27px;
  }

  .liturgy-prayers {
    padding: 76px 0;
  }

  .liturgy-source {
    padding: 58px 0 80px;
  }
}


/* ==========================================================
   V57 — PÁGINAS DE PASTORAIS E SERVIÇOS
   ========================================================== */

.service-detail-box {
  min-height: 275px;
}

.service-detail-box > p {
  color: #5d6873;
  font-size: 17px;
  line-height: 26px;
}

.service-people-list {
  display: grid;
  gap: 0;
  margin-top: 18px;
}

.service-person {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 20px;
  align-items: center;
  min-height: 50px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(11,40,80,.09);
}

.service-person:last-child {
  border-bottom: 0;
}

.service-person strong {
  color: var(--blue-deep);
  font-family: var(--font-sans);
  font-size: 16px;
  font-weight: 600;
}

.service-person span {
  color: #69737d;
  font-family: var(--font-sans);
  font-size: 14px;
  line-height: 21px;
  white-space: nowrap;
}

.service-subtitle {
  margin-top: 18px;
  color: var(--gold);
  font-family: var(--font-sans);
  font-size: 13px;
  line-height: 19.5px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.service-subtitle:first-of-type {
  margin-top: 12px;
}

.service-confirm-note {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: .35fr 1.65fr;
  gap: 26px;
  align-items: start;
  padding: 24px 28px;
  border-left: 3px solid var(--gold);
  background: rgba(200,168,91,.07);
}

.service-confirm-note span {
  color: var(--blue-deep);
  font-size: 13px;
  line-height: 19.5px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.service-confirm-note p {
  margin: 0;
  color: #66717b;
  font-size: 15px;
  line-height: 22.5px;
}

@media (max-width: 720px) {
  .service-person {
    grid-template-columns: 1fr;
    gap: 3px;
  }

  .service-person span {
    white-space: normal;
  }

  .service-confirm-note {
    grid-template-columns: 1fr;
    gap: 8px;
  }
}


/* ==========================================================
   V58 — HISTÓRICOS DAS PASTORAIS
   ========================================================== */

.service-activities {
  display: grid;
  gap: 10px;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}

.service-activities li {
  position: relative;
  padding-left: 20px;
  color: #5d6873;
  font-size: 16px;
  line-height: 24px;
}

.service-activities li::before {
  content: "•";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--gold);
  font-weight: 700;
}

.pastoral-logo img[alt="Preparação ao Matrimônio"],
.project-detail-logo img[alt="Preparação ao Matrimônio"] {
  object-fit: contain;
}


/* ==========================================================
   V59 — DIRETÓRIO DE PASTORAIS E NOVAS PÁGINAS
   ========================================================== */

.service-monogram {
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 310px;
  border-radius: 28px;
  background:
    radial-gradient(circle at 50% 40%, rgba(200,168,91,.18), transparent 38%),
    var(--blue-deep);
}

.service-monogram span {
  max-width: 80%;
  color: var(--gold-light);
  font-family: var(--font-display);
  font-size: clamp(44px, 6vw, 84px);
  line-height: .9;
  text-align: center;
  letter-spacing: -.03em;
}

.pastorais-all-cta {
  display: flex;
  justify-content: center;
  margin-top: 34px;
}

.pastoral-directory-hero {
  padding: 160px 0 90px;
  background:
    radial-gradient(circle at 88% 12%, rgba(200,168,91,.12), transparent 28%),
    var(--paper);
}

.pastoral-directory-hero-grid {
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  gap: 80px;
  align-items: end;
}

.pastoral-directory-hero h1 {
  color: var(--blue-deep);
  font-size: clamp(68px, 7.7vw, 108px);
  line-height: .88;
}

.pastoral-directory-hero-grid > p {
  max-width: 680px;
  margin: 0;
  color: #5e6974;
  font-size: 18px;
  line-height: 27px;
}

.pastoral-directory {
  padding: 86px 0 112px;
  background: #fff;
}

.pastoral-directory-group + .pastoral-directory-group {
  margin-top: 66px;
}

.pastoral-directory-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 14px;
  margin-top: 20px;
}

.pastoral-directory-card {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
  min-height: 92px;
  padding: 22px 24px;
  border: 1px solid rgba(11,40,80,.09);
  border-radius: 20px;
  background: var(--paper);
  color: var(--blue-deep);
  transition: transform .18s ease, box-shadow .18s ease;
}

.pastoral-directory-card span {
  font-family: var(--font-display);
  font-size: 23px;
  line-height: 1.05;
}

.pastoral-directory-card b {
  color: var(--gold);
  font-size: 18px;
}

.pastoral-directory-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 34px rgba(7,27,53,.07);
}

.pastoral-history-note {
  padding: 0 0 96px;
  background: #fff;
}

.radio-history-section {
  padding: 82px 0 94px;
  background: var(--paper);
}

.radio-history-grid {
  display: grid;
  grid-template-columns: .7fr 1.3fr;
  gap: 70px;
  align-items: start;
}

.radio-history-grid h2 {
  color: var(--blue-deep);
}

.radio-history-copy p {
  margin: 0 0 17px;
  color: #586470;
  font-size: 17px;
  line-height: 26px;
}

@media (max-width: 980px) {
  .pastoral-directory-hero-grid,
  .radio-history-grid {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .pastoral-directory-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
}

@media (max-width: 620px) {
  .pastoral-directory-hero {
    padding: 136px 0 70px;
  }

  .pastoral-directory-grid {
    grid-template-columns: 1fr;
  }

  .service-monogram {
    min-height: 240px;
  }
}


/* ==========================================================
   V60 — CARDS SEM LOGO + NOVAS FRENTES
   ========================================================== */

.pastoral-card-text {
  align-content: stretch;
}

.pastoral-name-card {
  position: relative;
  z-index: 2;
  display: grid;
  align-content: center;
  min-height: 180px;
  padding: 26px;
  text-align: center;
}

.pastoral-name-card small,
.group-card-name small {
  color: var(--gold);
  font-family: var(--font-sans);
  font-size: 12px;
  line-height: 18px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.pastoral-name-card strong {
  display: block;
  margin-top: 10px;
  color: var(--blue-deep);
  font-family: var(--font-display);
  font-size: clamp(27px, 2.3vw, 37px);
  line-height: .98;
  font-weight: 400;
}

.service-name-visual {
  display: grid;
  place-items: center;
  align-content: center;
  min-height: 310px;
  padding: 36px;
  border-radius: 28px;
  background:
    radial-gradient(circle at 50% 38%, rgba(200,168,91,.18), transparent 40%),
    var(--blue-deep);
  text-align: center;
}

.service-name-visual small {
  color: var(--gold-light);
  font-size: 12px;
  line-height: 18px;
  letter-spacing: .10em;
  text-transform: uppercase;
}

.service-name-visual strong {
  display: block;
  max-width: 92%;
  margin-top: 12px;
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(42px, 5vw, 72px);
  line-height: .93;
  font-weight: 400;
}

.group-card-text .group-card-media {
  min-height: 190px;
}

.group-card-name {
  display: grid;
  place-items: center;
  align-content: center;
  padding: 26px;
  background:
    radial-gradient(circle at 50% 35%, rgba(200,168,91,.17), transparent 38%),
    var(--blue-deep);
  text-align: center;
}

.group-card-name strong {
  display: block;
  max-width: 95%;
  margin-top: 9px;
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(25px, 2.2vw, 36px);
  line-height: .98;
  font-weight: 400;
}

.group-name-visual {
  display: grid;
  place-items: center;
  align-content: center;
  width: 100%;
  min-height: 380px;
  padding: 36px;
  border-radius: 28px;
  background:
    radial-gradient(circle at 50% 37%, rgba(200,168,91,.18), transparent 42%),
    var(--blue-deep);
  text-align: center;
}

.group-name-visual small {
  color: var(--gold-light);
  font-size: 12px;
  letter-spacing: .10em;
  text-transform: uppercase;
}

.group-name-visual strong {
  max-width: 92%;
  margin-top: 12px;
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(46px, 5vw, 76px);
  line-height: .92;
  font-weight: 400;
}

.group-status-note {
  margin-top: 16px !important;
  padding: 14px 16px;
  border-left: 3px solid var(--gold);
  background: rgba(200,168,91,.08);
  color: #64707b !important;
}

@media (max-width: 720px) {
  .pastoral-name-card {
    min-height: 150px;
  }

  .service-name-visual,
  .group-name-visual {
    min-height: 250px;
  }
}


/* ==========================================================
   V61 — REDES SOCIAIS OFICIAIS DO SANTUÁRIO
   ========================================================== */

.footer-socials {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 2px;
}

.footer-socials a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 7px 12px 7px 8px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  color: rgba(255,255,255,.78);
  font-family: var(--font-sans);
  font-size: 12px;
  line-height: 18px;
  text-decoration: none;
  transition: border-color .18s ease, color .18s ease, transform .18s ease, background .18s ease;
}

.footer-socials a svg {
  width: 23px;
  height: 23px;
  padding: 4px;
  border-radius: 50%;
  background: rgba(200,168,91,.14);
  fill: var(--gold-light);
}

.footer-socials a:hover,
.footer-socials a:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(200,168,91,.58);
  background: rgba(255,255,255,.04);
  color: #fff;
}

@media (max-width: 560px) {
  .footer-socials {
    flex-wrap: wrap;
  }

  .footer-socials a {
    min-width: 42px;
    justify-content: center;
    padding: 8px;
  }

  .footer-socials a span {
    display: none;
  }
}


/* ==========================================================
   V64 — VOLTAR AO TOPO
   ========================================================== */
html {
  scroll-behavior: smooth;
}

#topo {
  scroll-margin-top: 96px;
}


/* ==========================================================
   V65 — ORAÇÕES EUCARÍSTICAS I A V
   ========================================================== */

.liturgy-eucharistic {
  background: #f8f6f0;
}

.liturgy-euc-mini-grid,
.euc-index-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
  margin-top: 34px;
}

.liturgy-euc-all {
  margin-top: 30px;
  display: flex;
  justify-content: center;
}

.euc-card {
  position: relative;
  min-height: 210px;
  padding: 22px;
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 20px;
  border: 1px solid rgba(11,40,80,.10);
  border-radius: 22px;
  background: #fff;
  color: var(--blue-deep);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.euc-card:hover {
  transform: translateY(-3px);
  border-color: rgba(200,168,91,.48);
  box-shadow: 0 18px 38px rgba(11,40,80,.08);
}

.euc-card-num {
  color: var(--gold);
  font-family: var(--font-display);
  font-size: 42px;
  line-height: 1;
}

.euc-card small {
  display: block;
  color: #7a8490;
  font-size: 12px;
  line-height: 18px;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.euc-card h3 {
  margin: 7px 0 8px;
  color: var(--blue-deep);
  font-family: var(--font-display);
  font-size: 24px;
  line-height: 1.02;
  font-weight: 400;
}

.euc-card p {
  margin: 0;
  color: #65717c;
  font-size: 15px;
  line-height: 22px;
}

.euc-card > b {
  justify-self: end;
  color: var(--gold);
  font-size: 18px;
}

.euc-index-hero {
  padding: 170px 0 94px;
  background:
    radial-gradient(circle at 82% 20%, rgba(200,168,91,.14), transparent 28%),
    var(--paper);
}

.euc-index-hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: end;
}

.euc-index-hero h1 {
  margin: 0;
  color: var(--blue-deep);
  font-family: var(--font-display);
  font-size: clamp(68px, 8vw, 112px);
  line-height: .88;
  font-weight: 400;
}

.euc-index-intro p {
  margin: 0 0 18px;
  color: #56626e;
  font-size: 19px;
  line-height: 29px;
}

.euc-index-intro span {
  color: #7a8490;
  font-size: 14px;
  line-height: 21px;
}

.euc-index-list {
  padding: 78px 0 112px;
  background: #fff;
}

.euc-hero {
  padding: 160px 0 78px;
  background:
    radial-gradient(circle at 88% 15%, rgba(200,168,91,.13), transparent 26%),
    var(--paper);
}

.euc-hero-grid {
  display: grid;
  grid-template-columns: 190px 1fr;
  gap: 48px;
  align-items: start;
}

.euc-number {
  color: var(--gold);
  font-family: var(--font-display);
  font-size: clamp(108px, 13vw, 180px);
  line-height: .72;
  letter-spacing: -.06em;
}

.euc-hero h1 {
  margin: 4px 0 8px;
  color: var(--blue-deep);
  font-family: var(--font-display);
  font-size: clamp(48px, 6vw, 82px);
  line-height: .92;
  font-weight: 400;
}

.euc-hero h2 {
  margin: 0 0 22px;
  color: var(--gold);
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.euc-note {
  max-width: 780px;
  margin: 0;
  color: #66717c;
  font-size: 17px;
  line-height: 26px;
}

.euc-response-summary {
  padding: 70px 0;
  background: var(--blue-deep);
}

.euc-response-summary-grid {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 72px;
}

.euc-response-summary h2 {
  margin: 8px 0 16px;
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(40px, 4.5vw, 64px);
  line-height: .96;
  font-weight: 400;
}

.euc-response-summary p {
  color: rgba(255,255,255,.72);
  font-size: 16px;
  line-height: 24px;
}

.euc-response-summary ol {
  counter-reset: responses;
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 9px;
}

.euc-response-summary li {
  counter-increment: responses;
  position: relative;
  padding: 13px 16px 13px 52px;
  border: 1px solid rgba(255,255,255,.11);
  border-radius: 13px;
  color: #fff;
  font-size: 16px;
  line-height: 23px;
}

.euc-response-summary li::before {
  content: counter(responses, decimal-leading-zero);
  position: absolute;
  left: 16px;
  top: 13px;
  color: var(--gold-light);
  font-size: 12px;
  font-weight: 700;
}

.euc-full {
  padding: 88px 0 100px;
  background: #fff;
}

.euc-full-grid {
  display: grid;
  grid-template-columns: 250px minmax(0, 780px);
  gap: 72px;
  justify-content: center;
}

.euc-key {
  position: sticky;
  top: 110px;
  align-self: start;
  padding: 22px;
  border-radius: 18px;
  background: var(--paper);
}

.euc-key > div {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 10px;
  padding: 11px 0;
  border-top: 1px solid rgba(11,40,80,.08);
}

.euc-key b {
  color: var(--gold);
  font-size: 13px;
}

.euc-key span {
  color: #68737d;
  font-size: 13px;
  line-height: 19px;
}

.euc-prayer-body {
  min-width: 0;
}

.euc-rubric {
  margin: 22px 0 8px;
  color: #9a7b39;
  font-family: var(--font-text);
  font-style: italic;
  font-size: 14px;
  line-height: 21px;
}

.euc-role {
  margin: 14px 0;
  padding: 20px 22px;
  border-radius: 16px;
  background: #f8f6f0;
  border-left: 3px solid rgba(11,40,80,.24);
}

.euc-role-concelebrant {
  background: #f4f6f8;
  border-left-color: rgba(200,168,91,.8);
}

.euc-role-label {
  display: block;
  margin-bottom: 8px;
  color: var(--gold);
  font-size: 12px;
  line-height: 18px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.euc-text,
.euc-role p {
  margin: 0;
  color: #283847;
  font-family: var(--font-sans);
  font-size: 18px;
  line-height: 29px;
}

.euc-assembly {
  margin: 17px 0;
  padding: 17px 20px;
  border-radius: 16px;
  background: var(--blue-deep);
  box-shadow: 0 10px 25px rgba(11,40,80,.10);
}

.euc-assembly span {
  display: block;
  margin-bottom: 5px;
  color: var(--gold-light);
  font-size: 12px;
  line-height: 18px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.euc-assembly strong {
  display: block;
  color: #fff;
  font-family: var(--font-sans);
  font-size: 19px;
  line-height: 28px;
  font-weight: 600;
}

.euc-subhead {
  margin: 42px 0 15px;
  color: var(--blue-deep);
  font-family: var(--font-display);
  font-size: 31px;
  line-height: 1;
  font-weight: 400;
}

.euc-institution {
  margin: 30px 0;
  padding: 28px;
  border: 1px solid rgba(200,168,91,.38);
  border-radius: 18px;
  background: #fffdf8;
}

.euc-institution > span {
  color: var(--gold);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.euc-institution > p {
  color: #394755;
  font-size: 17px;
  line-height: 27px;
}

.euc-institution > strong {
  display: block;
  margin: 20px 0;
  color: var(--blue-deep);
  font-family: var(--font-sans);
  font-size: 20px;
  line-height: 31px;
  font-weight: 700;
}

.euc-institution .euc-rubric {
  margin-bottom: 26px;
}

.euc-mystery {
  margin: 28px 0;
  padding: 24px;
  border-radius: 18px;
  background: #f3f5f7;
}

.euc-mystery-option span,
.euc-mystery-option b {
  display: block;
  color: var(--gold);
  font-size: 12px;
  line-height: 18px;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.euc-mystery-option p {
  margin: 5px 0 14px;
  color: #344250;
  font-size: 17px;
  line-height: 25px;
}

.euc-mystery-option strong {
  display: block;
  margin-top: 4px;
  color: var(--blue-deep);
  font-size: 19px;
  line-height: 28px;
}

.euc-mystery-divider {
  margin: 18px 0;
  color: #9b7c3c;
  font-family: var(--font-text);
  font-style: italic;
  text-align: center;
}

.euc-prev-next {
  padding: 0 0 90px;
  display: flex;
  justify-content: space-between;
  gap: 20px;
}

.euc-prev-next a {
  color: var(--blue-deep);
  font-size: 15px;
  font-weight: 600;
}

@media (max-width: 1080px) {
  .liturgy-euc-mini-grid,
  .euc-index-grid {
    grid-template-columns: repeat(3, minmax(0,1fr));
  }
  .euc-full-grid {
    grid-template-columns: 210px minmax(0,1fr);
    gap: 40px;
  }
}

@media (max-width: 760px) {
  .liturgy-euc-mini-grid,
  .euc-index-grid {
    grid-template-columns: 1fr;
  }
  .euc-index-hero-grid,
  .euc-response-summary-grid,
  .euc-full-grid,
  .euc-hero-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .euc-index-hero {
    padding: 138px 0 70px;
  }
  .euc-hero {
    padding: 138px 0 60px;
  }
  .euc-number {
    font-size: 96px;
  }
  .euc-key {
    position: static;
  }
  .euc-response-summary {
    padding: 56px 0;
  }
  .euc-full {
    padding: 58px 0 78px;
  }
  .euc-role,
  .euc-institution,
  .euc-mystery {
    padding: 18px;
  }
  .euc-text,
  .euc-role p {
    font-size: 17px;
    line-height: 26px;
  }
  .euc-assembly strong,
  .euc-mystery-option strong {
    font-size: 18px;
    line-height: 26px;
  }
}


/* ==========================================================
   V66 — ORGANIZAÇÃO PASTORAL, SÍTIO, ESCUTA E TRANSMISSÃO
   ========================================================== */

.pastoral-org-cta {
  padding: 34px 0 56px;
  background: var(--paper);
}
.pastoral-org-cta-inner {
  display:grid;
  grid-template-columns:1.4fr auto;
  gap:36px;
  align-items:center;
  padding:28px 32px;
  border:1px solid rgba(11,40,80,.09);
  border-radius:22px;
  background:#fff;
}
.pastoral-org-cta h2 { margin:5px 0 8px; color:var(--blue-deep); font-family:var(--font-display); font-size:34px; line-height:1; font-weight:400; }
.pastoral-org-cta p { margin:0; color:#69747e; font-size:16px; line-height:24px; }

.org-hero { padding:160px 0 88px; background:radial-gradient(circle at 86% 16%,rgba(200,168,91,.14),transparent 28%),var(--paper); }
.org-hero-grid { display:grid; grid-template-columns:1fr 1fr; gap:74px; align-items:end; }
.org-hero h1 { margin:0; color:var(--blue-deep); font-family:var(--font-display); font-size:clamp(62px,7.2vw,104px); line-height:.88; font-weight:400; }
.org-hero-grid>div>p:not(.eyebrow){ color:#5d6974; font-size:18px; line-height:28px; }
.org-caution { margin-top:22px; padding:17px 18px; border-left:3px solid var(--gold); background:rgba(200,168,91,.08); }
.org-caution strong { display:block; color:var(--blue-deep); font-size:13px; text-transform:uppercase; letter-spacing:.07em; margin-bottom:5px; }
.org-caution span { color:#68747e; font-size:14px; line-height:21px; }

.org-tier { padding:78px 0 92px; background:#fff; }
.org-tier-dark { background:var(--blue-deep); }
.org-tier-paper { background:var(--paper); }
.org-tier-inactive { background:#f2f2ef; }
.org-tier-head { display:grid; grid-template-columns:90px 1fr; gap:24px; align-items:start; margin-bottom:34px; }
.org-tier-head>span { color:var(--gold); font-family:var(--font-display); font-size:70px; line-height:.8; }
.org-tier-head h2 { margin:6px 0 0; color:var(--blue-deep); font-family:var(--font-display); font-size:clamp(38px,4vw,58px); line-height:.95; font-weight:400; }
.org-tier-dark .org-tier-head h2 { color:#fff; }
.org-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; }
.org-grid-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.org-grid-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.org-card { position:relative; min-height:122px; padding:21px 22px; display:flex; flex-direction:column; justify-content:center; gap:8px; border:1px solid rgba(11,40,80,.09); border-radius:18px; background:#fff; color:var(--blue-deep); }
.org-card strong { font-family:var(--font-display); font-size:22px; line-height:1.02; font-weight:400; }
.org-card span { color:#6a7580; font-size:13px; line-height:19px; }
.org-card-council { background:rgba(255,255,255,.07); border-color:rgba(255,255,255,.13); color:#fff; }
.org-card-council strong { color:var(--gold-light); font-size:30px; }
.org-card-council span { color:rgba(255,255,255,.76); }
.org-card-link { padding-right:48px; transition:transform .18s ease, box-shadow .18s ease; }
.org-card-link b { position:absolute; right:18px; top:18px; color:var(--gold); }
.org-card-link:hover { transform:translateY(-2px); box-shadow:0 14px 32px rgba(11,40,80,.07); }
.org-card-inactive { opacity:.66; border-style:dashed; }

.inactive-status-card { grid-column:1/-1; padding:18px 20px; margin-bottom:16px; border-left:3px solid #8c8c86; background:#f0f0ed; }
.inactive-status-card strong { display:block; color:#535a60; text-transform:uppercase; letter-spacing:.06em; font-size:13px; }
.inactive-status-card p { margin:5px 0 0; color:#757d84; font-size:14px; line-height:21px; }

.site-community-hero { position:relative; min-height:72vh; display:grid; align-items:end; overflow:hidden; background:var(--blue-deep); }
.site-community-hero>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.site-community-overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgba(5,20,38,.78),rgba(5,20,38,.28) 58%,rgba(5,20,38,.38)); }
.site-community-title { position:relative; z-index:2; padding-bottom:80px; color:#fff; }
.site-community-title h1 { max-width:920px; margin:8px 0 0; font-family:var(--font-display); font-size:clamp(52px,6vw,88px); line-height:.91; font-weight:400; }
.site-community-info { display:grid; grid-template-columns:.8fr 1.2fr; gap:70px; align-items:start; }
.site-community-info h2 { color:var(--blue-deep); font-family:var(--font-display); font-size:46px; line-height:.96; font-weight:400; }
.site-community-info p { color:#66717c; font-size:17px; line-height:26px; }
.site-community-facts { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.site-community-facts>div { padding:20px; border:1px solid rgba(11,40,80,.09); border-radius:16px; background:var(--paper); }
.site-community-facts span,.site-community-facts small { display:block; color:#8a7a58; font-size:12px; text-transform:uppercase; letter-spacing:.06em; }
.site-community-facts strong { display:block; margin-top:6px; color:var(--blue-deep); font-size:18px; line-height:25px; }
.site-community-facts small { margin-top:6px; text-transform:none; letter-spacing:0; color:#7b858e; }
.site-community-actions { padding:0 0 90px; }
.site-community-actions .shell { display:flex; gap:12px; flex-wrap:wrap; }

.retreats-hero { padding:160px 0 76px; background:var(--paper); }
.retreats-hero h1 { margin:5px 0 15px; color:var(--blue-deep); font-family:var(--font-display); font-size:clamp(62px,7vw,98px); line-height:.9; font-weight:400; }
.retreats-hero p:not(.eyebrow) { max-width:700px; color:#66717c; font-size:18px; line-height:28px; }
.retreats-list { padding:72px 0 105px; background:#fff; }
.retreat-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.retreat-card { min-height:190px; padding:24px; border:1px solid rgba(11,40,80,.09); border-radius:20px; background:var(--paper); }
.retreat-card small { color:var(--gold); text-transform:uppercase; letter-spacing:.07em; font-size:12px; }
.retreat-card h3 { margin:22px 0 12px; color:var(--blue-deep); font-family:var(--font-display); font-size:30px; line-height:1; font-weight:400; }
.retreat-card span { color:#707a83; font-size:14px; }
a.retreat-card { transition:transform .18s ease,box-shadow .18s ease; }
a.retreat-card:hover { transform:translateY(-2px); box-shadow:0 14px 34px rgba(11,40,80,.07); }

.camp20-retreats { background:#fff; }
.camp20-retreats-grid { display:grid; grid-template-columns:1fr auto; gap:36px; align-items:center; }
.camp20-retreats h2 { margin:6px 0 12px; color:var(--blue-deep); font-family:var(--font-display); font-size:48px; line-height:.95; font-weight:400; }
.camp20-retreats p:not(.eyebrow){ max-width:700px; color:#66717c; font-size:16px; line-height:25px; }

.community-card[href] { text-decoration:none; color:inherit; }

@media(max-width:980px){
  .org-hero-grid,.site-community-info,.pastoral-org-cta-inner,.camp20-retreats-grid{grid-template-columns:1fr;}
  .org-grid,.org-grid-4,.org-grid-3,.retreat-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:640px){
  .org-grid,.org-grid-4,.org-grid-3,.retreat-grid,.site-community-facts{grid-template-columns:1fr;}
  .org-tier-head{grid-template-columns:64px 1fr;}
  .org-tier-head>span{font-size:52px;}
  .site-community-title{padding-bottom:48px;}
}


/* =========================================================
   V69 — DESTAQUES DOURADOS + MURAL DA GRAÇA + RETIRO
   ========================================================= */
.service-card.is-special-gold {
  background: linear-gradient(145deg, #d7bc78 0%, #c7a55d 100%);
  border-color: rgba(11,40,80,.13);
  box-shadow: 0 16px 42px rgba(93,68,20,.16);
}
.service-card.is-special-gold::before { background: var(--blue-deep); opacity:.9; }
.service-card.is-special-gold::after { background: radial-gradient(circle, rgba(255,255,255,.25), rgba(255,255,255,0) 70%); }
.service-card.is-special-gold strong { color: var(--blue-deep); }
.service-card.is-special-gold small { color: rgba(11,40,80,.72); }
.service-card.is-special-gold .service-number { color: rgba(11,40,80,.42); }
.service-card.is-special-gold .service-icon { color:#fff; background:var(--blue-deep); border-color:rgba(11,40,80,.2); }
.service-card.is-special-gold .arrow { color:#fff; background:var(--blue-deep); border-color:var(--blue-deep); }
.service-card.is-special-gold:hover { background: linear-gradient(145deg, #dec684 0%, #ceb068 100%); border-color:rgba(11,40,80,.22); }
.service-card.is-special-gold:hover .service-icon { transform:translateY(-2px) rotate(-2deg); color:#fff; background:var(--blue-deep); }
.service-card.is-special-gold:hover .arrow { background:#fff; color:var(--blue-deep); border-color:#fff; }
.mural-temp-mark strong { color:#fff !important; font-family:var(--font-display); font-size:23px; line-height:1; letter-spacing:.02em; }

.pastoral-card.is-special-gold {
  background: linear-gradient(145deg, #d8bd78 0%, #c7a55d 100%);
  border-color:rgba(11,40,80,.12);
  box-shadow:0 18px 48px rgba(93,68,20,.15);
}
.pastoral-card.is-special-gold::after { background:radial-gradient(circle,rgba(255,255,255,.22),rgba(255,255,255,0) 70%); }
.pastoral-card.is-special-gold:hover { background:linear-gradient(145deg,#dfc986,#cfb169); border-color:rgba(11,40,80,.2); }
.pastoral-card.is-special-gold .pastoral-card-line { background:var(--blue-deep); opacity:.75; }
.pastoral-card.is-special-gold .pastoral-card-foot { color:var(--blue-deep); border-top-color:rgba(11,40,80,.17); }
.pastoral-card.is-special-gold .pastoral-card-foot b { color:#fff; background:var(--blue-deep); border-color:var(--blue-deep); }
.pastoral-card.is-special-gold:hover .pastoral-card-foot b { background:#fff; color:var(--blue-deep); border-color:#fff; }
.pastoral-card.is-special-gold .pastoral-logo img { max-width:94%; max-height:194px; }

.pastoral-directory-card.is-pending {
  cursor:default;
  background:linear-gradient(145deg,rgba(255,252,244,.98),rgba(249,244,231,.95));
  border-color:rgba(199,168,106,.34);
}
.pastoral-directory-card.is-pending span { color:#ad8437; }
.pastoral-directory-card.is-pending:hover { transform:none; box-shadow:none; }
.pastoral-directory-card.is-special-gold {
  background:linear-gradient(145deg,#d8bd78,#c7a55d);
  border-color:rgba(11,40,80,.12);
}
.pastoral-directory-card.is-special-gold span,
.pastoral-directory-card.is-special-gold b { color:var(--blue-deep); }

.retreat-detail-page { background:var(--paper); }
.retreat-detail-hero { padding:150px 0 78px; background:var(--paper); }
.retreat-detail-hero-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:68px; align-items:center; }
.retreat-detail-copy h1 { margin:7px 0 24px; color:var(--blue-deep); font-family:var(--font-display); font-size:clamp(58px,6.7vw,94px); line-height:.88; font-weight:400; }
.retreat-detail-lead { max-width:610px; color:#5f6b76; font-size:19px; line-height:1.65; }
.retreat-detail-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:34px 0 30px; }
.retreat-detail-meta>div { padding:18px 20px; border:1px solid rgba(11,40,80,.09); border-radius:16px; background:#fff; }
.retreat-detail-meta small { display:block; color:#9a7c42; font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
.retreat-detail-meta strong { display:block; margin-top:6px; color:var(--blue-deep); font-size:18px; font-weight:600; }
.retreat-detail-visual { min-height:430px; overflow:hidden; border-radius:26px; box-shadow:0 24px 60px rgba(8,30,57,.14); background:#d9e4ee; }
.retreat-detail-visual img { width:100%; height:100%; min-height:430px; object-fit:cover; object-position:center center; display:block; }
.retreat-detail-story { background:#fff; }
.retreat-detail-story-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:86px; align-items:start; }
.retreat-detail-story h2, .retreat-detail-pillars h2 { margin:6px 0 0; color:var(--blue-deep); font-family:var(--font-display); font-size:clamp(42px,5vw,68px); line-height:.95; font-weight:400; }
.retreat-detail-prose p { margin:0 0 20px; color:#5d6872; font-size:18px; line-height:1.75; }
.retreat-detail-pillars { padding:92px 0 104px; background:var(--ivory); }
.retreat-detail-pillars-head { max-width:760px; margin-bottom:40px; }
.retreat-detail-pillar-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.retreat-detail-pillar-grid article { min-height:250px; padding:26px; border:1px solid rgba(11,40,80,.09); border-radius:20px; background:#fff; }
.retreat-detail-pillar-grid article>span { color:var(--gold); font-family:var(--font-display); font-size:24px; }
.retreat-detail-pillar-grid h3 { margin:34px 0 12px; color:var(--blue-deep); font-family:var(--font-display); font-size:31px; line-height:1; font-weight:400; }
.retreat-detail-pillar-grid p { margin:0; color:#68737d; line-height:1.65; }
.retreat-detail-note { padding:0 0 100px; background:var(--ivory); }
.retreat-detail-note .liturgy-source-card { align-items:center; }
@media(max-width:980px){
  .retreat-detail-hero-grid,.retreat-detail-story-grid{grid-template-columns:1fr;}
  .retreat-detail-pillar-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:640px){
  .retreat-detail-hero{padding-top:120px;}
  .retreat-detail-meta,.retreat-detail-pillar-grid{grid-template-columns:1fr;}
  .retreat-detail-visual,.retreat-detail-visual img{min-height:300px;}
}

.service-icon img { width:29px; height:29px; object-fit:contain; display:block; }
.mural-simple-icon img { width:30px; height:30px; }


/* =========================================================
   V84 — LOGOS REAIS EM PÁGINAS INTERNAS + ACAMPAMENTO BRANCO
   ========================================================= */
.camp20-card-art img[src$="logo-acampamentos.webp"],
.camp20-detail-emblem img[src$="logo-acampamentos.webp"] {
  filter: brightness(0) invert(1);
  opacity: .96;
}
.group-detail-image.is-light-media { background:#fff; border:1px solid rgba(11,40,80,.08); }
.group-media-section { background:#fff; }
.group-media-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; margin-top:36px; }
.group-media-grid.one-item { grid-template-columns:minmax(0,760px); justify-content:center; }
.group-media-card { margin:0; overflow:hidden; border-radius:28px; background:var(--blue-deep); border:1px solid rgba(11,40,80,.08); box-shadow:0 24px 60px rgba(7,27,53,.10); }
.group-media-card.light-card { background:#fff; }
.group-media-card img { width:100%; max-height:760px; display:block; object-fit:contain; }
.group-media-card figcaption { padding:16px 20px 19px; background:#fff; color:#687078; font-size:14px; line-height:1.45; }
.retreat-reference { background:#fff; }
.retreat-reference-grid { display:grid; grid-template-columns:.88fr 1.12fr; gap:70px; align-items:center; }
.retreat-reference-grid h2 { color:var(--blue-deep); font-size:clamp(38px,4.5vw,68px); line-height:1.02; }
.retreat-reference-grid > div > p:last-child { color:#687078; font-size:17px; line-height:1.75; max-width:620px; }
.retreat-reference-media { margin:0; border-radius:30px; overflow:hidden; background:#0b1f3a; box-shadow:0 28px 70px rgba(7,27,53,.13); }
.retreat-reference-media img { width:100%; max-height:760px; display:block; object-fit:contain; }
@media (max-width: 820px) {
  .group-media-grid, .retreat-reference-grid { grid-template-columns:1fr; gap:32px; }
  .group-media-card img, .retreat-reference-media img { max-height:620px; }
}


/* V84 — ajustes da seção As Cores + Apostolado */
.camp20-colors .camp20-heading {
  align-items: start;
  gap: 44px;
  margin-bottom: 34px;
}
.camp20-colors .camp20-heading > p {
  max-width: 640px;
  margin: 18px 0 0;
}
.camp20-colors-layout {
  gap: 18px;
  align-items: start;
}
.camp20-color-nav button {
  justify-content: flex-start;
}
.camp20-color-nav button .camp20-shirt-icon {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
}
.camp20-color-panel {
  min-height: 390px;
  grid-template-columns: 88px 1fr;
  gap: 24px;
  align-items: start;
  padding: 36px;
}
.camp20-color-swatch {
  width: 68px;
  height: 220px;
  margin-top: 8px;
}
.camp20-color-title {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 10px;
}
.camp20-color-title h3 {
  margin: 0;
}
.camp20-color-copy {
  max-width: 860px;
}
.camp20-color-copy p:last-child {
  margin-bottom: 0;
}
.group-detail-image.is-light-media img {
  max-height: 820px;
  object-fit: contain;
}
@media (max-width: 720px) {
  .camp20-colors .camp20-heading > p {
    margin-top: 0;
  }
  .camp20-color-title {
    gap: 12px;
  }
  .camp20-color-panel {
    min-height: auto;
  }
  .camp20-color-swatch {
    margin-top: 0;
  }
}


/* =========================================================
   V84 — COMPLEMENTOS DOS ACAMPAMENTOS
   Setores · Regimento · Ação Juvenil
   ========================================================= */
.camp20-complements { background:#fff; }
.camp20-complement-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.camp20-complement-grid > a { min-height:310px; display:flex; flex-direction:column; padding:34px; border-radius:26px; border:1px solid rgba(11,40,80,.09); background:linear-gradient(145deg,#fff,#f7f4ec); box-shadow:0 18px 50px rgba(8,27,52,.055); color:var(--blue-deep); text-decoration:none; transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease; }
.camp20-complement-grid > a:hover { transform:translateY(-5px); border-color:rgba(199,168,106,.65); box-shadow:0 24px 60px rgba(8,27,52,.10); }
.camp20-complement-grid small { color:var(--gold-dark); letter-spacing:.09em; text-transform:uppercase; }
.camp20-complement-grid h3 { margin:34px 0 12px; font-size:36px; line-height:1; color:var(--blue-deep); }
.camp20-complement-grid p { color:#687078; line-height:1.65; }
.camp20-complement-grid span { margin-top:auto; padding-top:26px; color:var(--blue-deep); font-weight:700; }
.camp20-hero-actions { flex-wrap:wrap; }

.camp-supp-page { background:var(--paper); }
.camp-supp-hero { padding:180px 0 90px; background:radial-gradient(circle at 85% 15%,rgba(199,168,106,.16),transparent 28%),linear-gradient(180deg,#fbfaf6,#f5f0e5); }
.camp-supp-hero-grid { display:grid; grid-template-columns:1.05fr .65fr; gap:70px; align-items:center; }
.camp-supp-hero h1 { margin:12px 0 22px; color:var(--blue-deep); font-size:clamp(64px,8vw,112px); line-height:.86; }
.camp-supp-lead { max-width:700px; color:#646b72; font-size:19px; line-height:1.7; }
.camp-supp-hero-mark { min-height:360px; display:grid; place-items:center; align-content:center; padding:38px; border-radius:32px; background:var(--blue-deep); color:#fff; text-align:center; box-shadow:0 30px 80px rgba(7,27,53,.16); }
.camp-supp-hero-mark span,.camp-supp-hero-mark small { color:var(--gold-light); letter-spacing:.12em; text-transform:uppercase; }
.camp-supp-hero-mark strong { margin:10px 0; font-family:var(--font-display); font-size:76px; font-weight:400; line-height:.9; }
.camp-supp-links { padding:28px 0; background:#fff; border-top:1px solid rgba(11,40,80,.06); border-bottom:1px solid rgba(11,40,80,.06); }
.camp-supp-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.camp-supp-nav a { position:relative; display:grid; grid-template-columns:auto 1fr; gap:2px 14px; min-height:92px; padding:19px 22px; border:1px solid rgba(11,40,80,.09); border-radius:18px; color:var(--blue-deep); text-decoration:none; background:#fbfaf7; }
.camp-supp-nav a[aria-current="page"] { background:var(--blue-deep); color:#fff; border-color:var(--blue-deep); }
.camp-supp-nav small { grid-row:1/3; align-self:center; color:var(--gold-dark); font-size:13px; }
.camp-supp-nav strong { font-family:var(--font-display); font-size:26px; font-weight:400; line-height:1; }
.camp-supp-nav span { color:#70767c; font-size:12px; }
.camp-supp-nav a[aria-current="page"] span { color:rgba(255,255,255,.68); }
.camp-supp-section-head { display:grid; grid-template-columns:.8fr 1.2fr; gap:70px; align-items:end; margin-bottom:45px; }
.camp-supp-section-head .eyebrow { grid-column:1; }
.camp-supp-section-head h2 { grid-column:1; margin:0; color:var(--blue-deep); font-size:clamp(46px,5vw,68px); line-height:.95; }
.camp-supp-section-head > p:last-child { grid-column:2; grid-row:1/3; max-width:650px; margin:0 0 8px; color:#687078; font-size:17px; line-height:1.7; }

.sector-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.sector-card { padding:30px; border:1px solid rgba(11,40,80,.08); border-radius:24px; background:#fff; box-shadow:0 16px 45px rgba(8,27,52,.045); }
.sector-card-head { display:grid; grid-template-columns:52px 1fr; gap:15px; align-items:start; }
.sector-card-head > span { width:48px; height:48px; display:grid; place-items:center; border-radius:14px; background:var(--blue-deep); color:var(--gold-light); font-weight:700; }
.sector-card h2 { margin:0; color:var(--blue-deep); font-size:32px; line-height:1; }
.sector-card-head small { color:var(--gold-dark); text-transform:uppercase; letter-spacing:.07em; }
.sector-identity { margin:24px 0 16px; color:var(--blue-deep); font-family:var(--font-display); font-size:23px; line-height:1.2; }
.sector-bible { color:#5e6670; font-style:italic; line-height:1.65; }
.sector-prayer { margin-top:22px; padding-top:20px; border-top:1px solid rgba(11,40,80,.08); }
.sector-prayer small { color:var(--gold-dark); text-transform:uppercase; letter-spacing:.1em; }
.sector-prayer p { margin:7px 0 0; color:#687078; line-height:1.7; }

.reg-stack { display:grid; gap:18px; }
.reg-chapter { display:grid; grid-template-columns:300px 1fr; gap:35px; padding:30px; border-radius:24px; border:1px solid rgba(11,40,80,.08); background:#fff; }
.reg-chapter-head small { color:var(--gold-dark); text-transform:uppercase; letter-spacing:.1em; }
.reg-chapter-head h2 { margin:10px 0 0; color:var(--blue-deep); font-size:36px; line-height:1; }
.reg-articles { display:grid; gap:18px; }
.reg-articles article { padding:18px 20px; border-radius:16px; background:#f9f7f1; }
.reg-articles strong { color:var(--blue-deep); }
.reg-articles p { margin:7px 0 0; color:#626970; line-height:1.72; }

.aj-intro-grid,.aj-three { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.aj-intro-grid article,.aj-three article,.aj-two article,.aj-format-grid article { padding:28px; border-radius:22px; border:1px solid rgba(11,40,80,.08); background:#fff; }
.aj-intro-grid h3,.aj-three h3,.aj-two h3,.aj-format-grid h3 { color:var(--blue-deep); font-size:30px; line-height:1; }
.aj-intro-grid p,.aj-three p,.aj-two p,.aj-format-grid p { color:#687078; line-height:1.68; }
.aj-block { margin-top:80px; }
.aj-block > h2 { max-width:900px; color:var(--blue-deep); font-size:clamp(40px,5vw,64px); line-height:.98; }
.aj-list-card { max-width:900px; padding:30px; border-radius:24px; background:#fff; border:1px solid rgba(11,40,80,.08); }
.aj-list-card p { color:#646b72; line-height:1.65; }
.aj-note { padding:14px 18px; border-left:3px solid var(--gold); background:rgba(199,168,106,.08); color:var(--blue-deep)!important; }
.aj-highlight,.aj-quote { padding:42px; border-radius:30px; background:var(--blue-deep); color:#fff; }
.aj-highlight h2,.aj-quote h2 { color:#fff; }
.aj-highlight p,.aj-quote p { color:rgba(255,255,255,.78); }
.aj-highlight .eyebrow,.aj-quote .eyebrow { color:var(--gold-light); }
.aj-checks { display:flex; flex-wrap:wrap; gap:9px; margin:24px 0; }
.aj-checks span { padding:9px 13px; border-radius:999px; background:rgba(199,168,106,.14); color:var(--blue-deep); border:1px solid rgba(199,168,106,.28); font-size:13px; }
.aj-highlight .aj-checks span { color:#fff; border-color:rgba(255,255,255,.16); background:rgba(255,255,255,.08); }
.aj-two { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.aj-content-cards article small,.aj-format-grid small { color:var(--gold-dark); text-transform:uppercase; letter-spacing:.09em; }
.aj-synthesis { display:grid; grid-template-columns:160px 1fr; max-width:720px; margin-top:24px; border:1px solid rgba(11,40,80,.08); border-radius:18px; overflow:hidden; }
.aj-synthesis strong,.aj-synthesis span { padding:13px 16px; border-bottom:1px solid rgba(11,40,80,.06); }
.aj-synthesis strong { color:var(--blue-deep); background:#f8f5ed; }
.aj-synthesis span { color:#687078; background:#fff; }
.aj-timeline { display:grid; gap:12px; }
.aj-timeline article { display:grid; grid-template-columns:56px 1fr; gap:18px; align-items:start; padding:23px 26px; border-radius:20px; background:#fff; border:1px solid rgba(11,40,80,.08); }
.aj-timeline article > span { width:48px; height:48px; display:grid; place-items:center; border-radius:14px; background:var(--blue-deep); color:var(--gold-light); font-weight:700; }
.aj-timeline h3 { margin:0 0 7px; color:var(--blue-deep); font-size:28px; }
.aj-timeline p { margin:0; color:#687078; line-height:1.65; }
.aj-format-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.aj-calendar { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.aj-calendar article { min-height:170px; padding:23px; border-radius:20px; background:#fff; border:1px solid rgba(11,40,80,.08); }
.aj-calendar strong { display:block; color:var(--blue-deep); font-family:var(--font-display); font-size:30px; font-weight:400; }
.aj-calendar span { display:inline-block; margin:8px 0; color:var(--gold-dark); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.07em; }
.aj-calendar p { color:#687078; line-height:1.55; }

@media (max-width:980px){
  .camp20-complement-grid,.camp-supp-nav,.aj-intro-grid,.aj-three,.aj-calendar { grid-template-columns:1fr; }
  .camp-supp-hero-grid,.camp-supp-section-head,.reg-chapter { grid-template-columns:1fr; gap:28px; }
  .camp-supp-section-head > p:last-child { grid-column:1; grid-row:auto; }
  .sector-grid,.aj-two,.aj-format-grid { grid-template-columns:1fr; }
  .camp-supp-hero { padding-top:150px; }
  .camp-supp-hero-mark { min-height:260px; }
}
@media (max-width:720px){
  .camp-supp-hero h1 { font-size:60px; }
  .camp-supp-hero-mark strong { font-size:58px; }
  .camp-supp-nav a { min-height:80px; }
  .sector-card,.reg-chapter,.aj-highlight,.aj-quote { padding:22px; }
  .aj-block { margin-top:55px; }
  .aj-synthesis { grid-template-columns:1fr; }
  .aj-timeline article { grid-template-columns:44px 1fr; padding:19px; }
  .aj-timeline article > span { width:40px; height:40px; }
}


/* V84 — cards padronizados com logo menor em fundo azul */
.group-card.is-logo-card .group-card-body h3 { display: none; }
.group-card-logo-card {
  padding: 26px 22px 20px;
  align-content: center;
  grid-auto-rows: min-content;
  gap: 16px;
  justify-items: center;
  background:
    radial-gradient(circle at 50% 28%, rgba(255,255,255,.08), transparent 34%),
    var(--blue-deep);
}
.group-card-logo-wrap {
  width: min(76%, 220px);
  min-height: 132px;
  display: grid;
  place-items: center;
  padding: 14px;
  border-radius: 24px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 18px 42px rgba(5, 20, 44, .24);
}
.group-card-logo-card img {
  width: 100%;
  height: 100%;
  max-height: 122px;
  object-fit: contain;
}
.group-card-media-title {
  display: block;
  max-width: 92%;
  text-align: center;
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(26px, 2.4vw, 38px);
  line-height: .98;
  font-weight: 400;
}
.group-card.is-logo-card .group-card-body {
  padding-top: 22px;
}
.group-card.is-logo-card .group-card-body span {
  margin-top: 6px;
}
@media (max-width: 720px) {
  .group-card-logo-wrap { width: min(80%, 210px); min-height: 126px; }
  .group-card-media-title { font-size: clamp(24px, 6vw, 34px); }
}


/* V84 — Agenda telefônica interna */
.agenda-page { background: var(--paper); min-height: 100vh; }
.agenda-gate { min-height: calc(100vh - 110px); display:grid; place-items:center; padding:150px 22px 80px; background:radial-gradient(circle at 20% 15%,rgba(199,168,106,.14),transparent 30%),var(--paper); }
.agenda-gate-card { width:min(100%,620px); padding:52px; border:1px solid rgba(11,40,80,.10); border-radius:30px; background:#fff; box-shadow:0 28px 80px rgba(7,27,53,.10); }
.agenda-gate-card h1,.agenda-head h1 { color:var(--blue-deep); font-size:clamp(48px,6vw,76px); line-height:.95; }
.agenda-gate-card > p:not(.eyebrow),.agenda-head p { color:#697078; font-size:16px; }
.agenda-gate-card form { margin-top:34px; }
.agenda-gate-card label,.agenda-search-box label { display:block; margin-bottom:9px; color:var(--blue-deep); font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.agenda-password-row { display:grid; grid-template-columns:1fr auto; gap:10px; }
.agenda-password-row input,.agenda-search-box input { width:100%; min-height:54px; padding:13px 16px; border:1px solid rgba(11,40,80,.16); border-radius:14px; background:#fdfcf9; color:var(--ink); font:inherit; outline:none; }
.agenda-password-row input:focus,.agenda-search-box input:focus { border-color:rgba(199,168,106,.9); box-shadow:0 0 0 4px rgba(199,168,106,.12); background:#fff; }
.agenda-login-error { min-height:22px; margin:10px 0 0; color:#9e3434; font-size:13px; }
.agenda-app { padding:150px 0 100px; }
.agenda-head { display:flex; justify-content:space-between; gap:32px; align-items:flex-end; margin-bottom:34px; }
.agenda-head p { max-width:700px; }
.agenda-lock { background:transparent; border:1px solid rgba(11,40,80,.18); color:var(--blue-deep); }
.agenda-search-box { position:sticky; top:104px; z-index:8; display:grid; grid-template-columns:1fr auto; align-items:end; gap:10px 20px; margin-bottom:28px; padding:20px; border:1px solid rgba(11,40,80,.08); border-radius:20px; background:rgba(255,255,255,.96); backdrop-filter:blur(12px); box-shadow:0 14px 42px rgba(7,27,53,.06); }
.agenda-search-box label { grid-column:1/-1; margin:0; }
.agenda-search-box span { color:#7b8187; font-size:13px; white-space:nowrap; }
.agenda-results { display:grid; gap:14px; }
.agenda-contact-card { display:flex; justify-content:space-between; gap:28px; align-items:center; padding:22px 24px; border:1px solid rgba(11,40,80,.08); border-radius:20px; background:#fff; box-shadow:0 12px 34px rgba(7,27,53,.045); }
.agenda-contact-main { display:flex; gap:18px; align-items:flex-start; min-width:0; }
.agenda-avatar { width:48px; height:48px; flex:0 0 48px; display:grid; place-items:center; border-radius:15px; background:var(--blue-deep); color:#fff; font-family:var(--font-display); font-size:25px; }
.agenda-contact-card h2 { margin:1px 0 8px; color:var(--blue-deep); font-size:27px; line-height:1; }
.agenda-role-list { display:flex; flex-wrap:wrap; gap:6px; }
.agenda-role-list span { padding:6px 9px; border-radius:999px; background:rgba(199,168,106,.10); color:#6b6049; font-size:11px; line-height:1.2; }
.agenda-contact-actions { display:flex; gap:14px; align-items:center; flex:0 0 auto; }
.agenda-phone { color:var(--blue-deep); font-size:17px; font-weight:800; white-space:nowrap; }
.agenda-whatsapp { min-height:42px; padding:10px 16px; }
.agenda-empty { padding:52px; text-align:center; border:1px dashed rgba(11,40,80,.16); border-radius:22px; color:#6c7379; }
.agenda-empty strong,.agenda-empty span { display:block; }
.agenda-empty strong { margin-bottom:7px; color:var(--blue-deep); font-size:22px; }
@media(max-width:760px){.agenda-gate-card{padding:34px 24px}.agenda-password-row{grid-template-columns:1fr}.agenda-head{display:block}.agenda-lock{margin-top:20px}.agenda-search-box{top:88px;grid-template-columns:1fr}.agenda-contact-card{align-items:flex-start;flex-direction:column}.agenda-contact-actions{width:100%;justify-content:space-between}.agenda-app{padding-top:120px}}


/* V84 — política pública de contatos */
.public-contact-policy{margin-top:118px;margin-bottom:-76px;padding:16px 20px;border:1px solid rgba(11,40,80,.09);border-radius:16px;background:rgba(199,168,106,.08);display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;color:#626970;font-size:13px;line-height:1.5}.public-contact-policy strong{color:var(--blue-deep);font-family:var(--font-sans);font-weight:800}.service-person span,.camp20-person span{color:#7a8086}.camp20-person span:empty{display:none}@media(max-width:720px){.public-contact-policy{margin-top:104px;margin-bottom:-58px}}


/* V84 — cards dourados com texto branco e ícone no padrão dos demais */
.service-card.is-special-gold strong { color: #ffffff; }
.service-card.is-special-gold small { color: rgba(255,255,255,.88); }
.service-card.is-special-gold .service-number { color: rgba(255,255,255,.62); }
.service-card.is-special-gold .service-icon {
  color: var(--blue);
  border-color: rgba(199,168,106,.42);
  background: linear-gradient(145deg, rgba(226,204,160,.26), rgba(255,255,255,.78));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 7px 20px rgba(9,31,57,.06);
}
.service-card.is-special-gold .arrow {
  color: #fff;
  background: var(--blue-deep);
  border-color: var(--blue-deep);
}
.service-card.is-special-gold:hover .service-icon {
  color: var(--white);
  background: var(--blue);
  border-color: var(--blue);
}
.service-card.is-special-gold:hover .arrow {
  background: #fff;
  color: var(--blue-deep);
  border-color: #fff;
}
.mural-simple-icon img { width: 23px; height: 23px; }

.pastoral-card.is-special-gold .pastoral-card-foot {
  color: #fff;
  border-top-color: rgba(255,255,255,.24);
}
.pastoral-card.is-special-gold .pastoral-card-foot b {
  color: var(--blue-deep);
  background: #fff;
  border-color: #fff;
}
.pastoral-card.is-special-gold:hover .pastoral-card-foot b {
  background: var(--blue-deep);
  color: #fff;
  border-color: var(--blue-deep);
}

.pastoral-directory-card.is-special-gold span,
.pastoral-directory-card.is-special-gold b { color: #fff; }

/* V84 — ajustes finais dos logos de grupos */

.group-card[href="grupos/musicos.html"] .group-card-logo-wrap {
  width: min(82%, 244px);
  min-height: 154px;
}
.group-card[href="grupos/musicos.html"] .group-card-logo-wrap img {
  max-height: 144px;
}
.group-card[href="grupos/terco-das-mulheres.html"] .group-card-logo-wrap img {
  max-height: 118px;
}
.group-card[href="grupos/grupo-de-oracao.html"] .group-card-logo-wrap {
  width: min(74%, 214px);
  min-height: 132px;
}
.group-card[href="grupos/grupo-de-oracao.html"] .group-card-logo-wrap img {
  width: 82%;
  max-height: 116px;
  object-position: center center;
}
.group-card[href="grupos/homens-de-fe.html"] .group-card-logo-wrap {
  width: min(80%, 224px);
  min-height: 146px;
}
.group-card[href="grupos/homens-de-fe.html"] .group-card-logo-wrap img {
  max-height: 138px;
}


/* V84 — transparent logo card fixes */

.group-card[href="grupos/terco-das-mulheres.html"] .group-card-logo-wrap img {
  width: 88%;
  max-height: 114px;
}
.group-card[href="grupos/grupo-de-oracao.html"] .group-card-logo-wrap img {
  width: 76%;
  max-height: 112px;
}


/* V84 — logos oficiais Homens e Mulheres de Fé */

.group-card[href="grupos/homens-de-fe.html"] .group-card-logo-wrap img {
  width: 86%;
  max-height: 152px;
}
.group-card[href="grupos/mulheres-de-fe.html"] .group-card-logo-wrap img {
  width: 86%;
  max-height: 134px;
}


/* V84 — ajustes solicitados nos cards dourados e remoção pública do Adoradores */
.service-card.is-special-gold .service-icon img,
.service-card.is-special-gold .service-icon svg {
  transition: filter .25s ease, opacity .25s ease;
}
.service-card.is-special-gold .service-icon img {
  width: 23px;
  height: 23px;
  object-fit: contain;
}
.service-card.is-special-gold:hover .service-icon img {
  filter: brightness(0) invert(1);
}
.service-card.is-special-gold:hover .service-icon svg {
  filter: brightness(0) invert(1);
}

/* manter a bolinha azul no estado normal do card dourado */
.service-card.is-special-gold .arrow {
  color: #fff;
  background: var(--blue-deep);
  border-color: var(--blue-deep);
}
.service-card.is-special-gold:hover .arrow {
  background: #fff;
  color: var(--blue-deep);
  border-color: #fff;
}

/* pastorais da abadia: fundo dourado, texto branco, logo branca */
.pastoral-card.is-special-gold .pastoral-logo {
  min-height: 170px;
  display: grid;
  place-items: center;
}
.pastoral-card.is-special-gold .pastoral-logo img[alt="Pastorais da Abadia"] {
  width: min(88%, 290px);
  max-width: 88%;
  max-height: 138px;
  object-fit: contain;
  filter: none;
}
.pastoral-card.is-special-gold .pastoral-card-foot span {
  color: #fff;
  font-weight: 700;
}

/* preparação ao matrimônio com cantos arredondados */
.pastoral-logo img[alt="Preparação ao Matrimônio"],
.project-detail-logo img[alt="Preparação ao Matrimônio"] {
  object-fit: contain;
  border-radius: 24px;
}

/* Mural da Graça: garante ícone visível dentro do card dourado */
.mural-graca-card .service-icon {
  overflow: hidden;
}
.mural-graca-card .service-icon img {
  display: block;
}


/* V85 — Magnificat + varredura final de cards especiais */
.camp20-card-art.magnificat-art img {
  width: 174px;
  height: 174px;
  object-fit: cover;
  border-radius: 18px;
  opacity: 1;
  box-shadow: 0 15px 38px rgba(0,0,0,.20);
}
.camp20-detail-emblem.magnificat-emblem::before { display:none; }
.camp20-detail-emblem.magnificat-emblem img {
  width: min(82%, 400px);
  height: min(82%, 450px);
  object-fit: cover;
  border-radius: 26px;
  box-shadow: 0 20px 55px rgba(0,0,0,.22);
}
.camp20-magnificat-identity { background:#fff; }
.camp20-magnificat-identity-grid {
  display:grid;
  grid-template-columns:.72fr 1.28fr;
  gap:72px;
  align-items:center;
}
.camp20-magnificat-identity h2 {
  margin:6px 0 18px;
  color:var(--blue-deep);
  font-family:var(--font-display);
  font-size:clamp(48px,6vw,78px);
  line-height:.94;
  font-weight:400;
}
.camp20-magnificat-identity p:not(.eyebrow) { color:#66717c; font-size:17px; line-height:1.7; }
.camp20-magnificat-poster {
  margin:0;
  min-height:520px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:28px;
  background:#eef5fb;
  box-shadow:0 24px 64px rgba(7,27,53,.10);
}
.camp20-magnificat-poster img { width:100%; height:100%; max-height:760px; object-fit:contain; display:block; }

/* Pastorais da Abadia: logo branca do Santuário, sem caixa interna */
.pastoral-card.is-special-gold .pastoral-logo img[alt="Pastorais da Abadia"] {
  width:min(78%,260px);
  max-width:78%;
  max-height:176px;
  object-fit:contain;
}

/* Mural: normal = ícone azul em fundo claro; hover = ícone branco em fundo azul */
.mural-graca-card .service-icon {
  background:linear-gradient(145deg,rgba(226,204,160,.26),rgba(255,255,255,.90));
  border-color:rgba(199,168,106,.42);
}
.mural-graca-card .service-icon img { filter:none; opacity:1; }
.mural-graca-card:hover .service-icon {
  background:var(--blue-deep);
  border-color:var(--blue-deep);
}
.mural-graca-card:hover .service-icon img {
  filter:brightness(0) invert(1);
  opacity:1;
}

@media(max-width:980px){
  .camp20-magnificat-identity-grid{grid-template-columns:1fr;gap:38px;}
  .camp20-magnificat-poster{min-height:360px;}
}


/* V87 — agenda filtrável 2026/2027 */
.camp20-agenda-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 0 0 18px;
  padding: 16px 18px;
  border: 1px solid rgba(255,255,255,.11);
  border-radius: 18px;
  background: rgba(255,255,255,.045);
}
.camp20-agenda-years,
.camp20-agenda-filters {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.camp20-agenda-controls button {
  min-height: 40px;
  padding: 9px 14px;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 999px;
  background: transparent;
  color: rgba(255,255,255,.68);
  font: 700 11px/1 var(--font-sans);
  letter-spacing: .05em;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.camp20-agenda-controls button:hover:not(:disabled),
.camp20-agenda-controls button.is-active {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--blue-deep);
  transform: translateY(-1px);
}
.camp20-agenda-controls button:disabled {
  opacity: .42;
  cursor: default;
}
.camp20-event.is-cerco {
  margin: 8px -18px;
  padding: 20px 18px;
  border: 1px solid rgba(119,180,232,.34);
  border-radius: 16px;
  background: rgba(119,180,232,.075);
}
.camp20-event.is-cerco .camp20-event-date { color: #b9dcfa; }
.camp20-event.is-cerco strong { color: #fff; }
.camp20-event-status {
  display: inline-flex;
  margin-top: 8px;
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(199,168,106,.15);
  color: var(--gold-light);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.camp20-agenda-empty {
  margin-top: 22px;
  padding: 34px;
  border: 1px dashed rgba(255,255,255,.16);
  border-radius: 18px;
  text-align: center;
  color: rgba(255,255,255,.58);
}
.camp20-agenda-empty strong,
.camp20-agenda-empty span { display: block; }
.camp20-agenda-empty strong { margin-bottom: 6px; color: #fff; font-size: 18px; }
@media (max-width: 980px) {
  .camp20-agenda-controls { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 720px) {
  .camp20-agenda-controls { padding: 14px; }
  .camp20-agenda-controls button { min-height: 38px; padding: 8px 11px; font-size: 10px; }
}


/* ==========================================================
   V87 — INTENÇÕES E ORAÇÕES (SEM VELAS)
   ========================================================== */

.intentions-page {
  background: var(--paper);
}

.intentions-hero {
  padding: 158px 0 96px;
  background:
    radial-gradient(circle at 4% 12%, rgba(199,168,106,.14), transparent 28%),
    var(--paper);
}

.intentions-hero-grid {
  display: grid;
  grid-template-columns: .92fr 1.08fr;
  gap: 76px;
  align-items: center;
}

.intentions-hero h1 {
  max-width: 660px;
  color: var(--blue-deep);
  font-size: clamp(66px, 7.5vw, 104px);
  line-height: .88;
}

.intentions-hero-copy > p:not(.eyebrow) {
  max-width: 610px;
  margin: 28px 0 0;
  color: #596574;
  font-size: 18px;
  line-height: 27px;
  letter-spacing: .3px;
}

.intentions-hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
  margin-top: 34px;
}

.intentions-hero-photo {
  position: relative;
  min-height: 570px;
  overflow: hidden;
  border-radius: 32px;
  box-shadow: 0 30px 80px rgba(7,27,53,.14);
}

.intentions-hero-photo img {
  width: 100%;
  height: 100%;
  min-height: 570px;
  object-fit: cover;
}

.intentions-hero-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 52%, rgba(3,20,42,.76));
}

.intentions-hero-photo span {
  position: absolute;
  z-index: 2;
  left: 30px;
  right: 30px;
  bottom: 28px;
  display: grid;
  gap: 5px;
  color: #fff;
  font-family: var(--font-display);
  font-size: 29px;
  line-height: 1.02;
}

.intentions-hero-photo small {
  color: var(--gold-light);
  font-family: var(--font-sans);
  font-size: 13px;
  line-height: 19.5px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.intentions-intro {
  background: #fff;
}

.intentions-heading {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 80px;
  align-items: end;
}

.intentions-heading h2,
.intentions-form-copy h2 {
  color: var(--blue-deep);
}

.intentions-heading > p {
  max-width: 650px;
  margin: 0;
  color: #596574;
  font-size: 18px;
  line-height: 27px;
  letter-spacing: .3px;
}

.intentions-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 18px;
  margin-top: 54px;
}

.intentions-steps article {
  min-height: 215px;
  padding: 30px;
  border: 1px solid rgba(11,40,80,.10);
  border-radius: 24px;
  background: var(--paper);
}

.intentions-steps b {
  color: var(--gold);
  font-size: 13px;
  letter-spacing: .14em;
}

.intentions-steps h3 {
  margin-top: 18px;
  color: var(--blue-deep);
  font-size: 33px;
}

.intentions-steps p {
  margin: 12px 0 0;
  color: #66707a;
  font-size: 16px;
  line-height: 24px;
}

.intentions-form-section {
  padding: 112px 0 126px;
  background:
    radial-gradient(circle at 92% 8%, rgba(199,168,106,.13), transparent 25%),
    var(--ivory);
}

.intentions-form-grid {
  display: grid;
  grid-template-columns: .78fr 1.22fr;
  gap: 84px;
  align-items: start;
}

.intentions-form-copy {
  position: sticky;
  top: 122px;
}

.intentions-form-copy > p:not(.eyebrow) {
  max-width: 500px;
  margin-top: 24px;
  color: #626970;
  font-size: 18px;
  line-height: 27px;
}

.intentions-private-note {
  display: grid;
  grid-template-columns: 38px 1fr;
  gap: 14px;
  margin-top: 32px;
  padding-top: 28px;
  border-top: 1px solid rgba(11,40,80,.12);
}

.intentions-private-note > span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--gold);
  color: #fff;
  font-size: 15px;
}

.intentions-private-note strong {
  display: block;
  color: var(--blue-deep);
  font-size: 16px;
}

.intentions-private-note p {
  margin: 5px 0 0;
  color: #71777d;
  font-size: 14px;
  line-height: 21px;
}

.intentions-form {
  padding: 38px;
}

.form-helper {
  display: block;
  margin-top: 1px;
  color: #7a8086;
  font-size: 13px;
  line-height: 19.5px;
}

.intentions-form .form-field textarea {
  min-height: 170px;
}

.intentions-types {
  padding: 88px 0;
  background: var(--blue-deep);
  color: #fff;
}

.intentions-types-grid {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 80px;
  align-items: center;
}

.intentions-types h2 {
  max-width: 640px;
  color: #fff;
  font-size: clamp(44px, 5.3vw, 70px);
}

.intentions-types .eyebrow {
  color: var(--gold-light);
}

.intentions-types-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.intentions-types-list span {
  padding: 12px 17px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.88);
  font-size: 14px;
  line-height: 21px;
}

.intentions-support {
  padding: 78px 0 100px;
  background: var(--paper);
}

.intentions-support-card {
  display: grid;
  grid-template-columns: .36fr 1.15fr .49fr;
  gap: 28px;
  align-items: center;
  padding: 30px 34px;
  border-left: 3px solid var(--gold);
  background: rgba(199,168,106,.07);
}

.intentions-support-card > span {
  color: var(--blue-deep);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.intentions-support-card p {
  margin: 0;
  color: #606a74;
  font-size: 16px;
  line-height: 24px;
}

.intentions-support-card a {
  justify-self: end;
  color: var(--blue);
  font-size: 13px;
  line-height: 19.5px;
  font-weight: 600;
}

.intentions-support-card a:hover {
  color: var(--gold);
}

@media (max-width: 980px) {
  .intentions-hero-grid,
  .intentions-heading,
  .intentions-form-grid,
  .intentions-types-grid,
  .intentions-support-card {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  .intentions-form-copy {
    position: static;
  }

  .intentions-support-card a {
    justify-self: start;
  }
}

@media (max-width: 720px) {
  .intentions-hero {
    padding: 136px 0 72px;
  }

  .intentions-hero h1 {
    font-size: clamp(58px, 17vw, 82px);
  }

  .intentions-hero-photo,
  .intentions-hero-photo img {
    min-height: 430px;
  }

  .intentions-steps {
    grid-template-columns: 1fr;
  }

  .intentions-form-section {
    padding: 76px 0 88px;
  }

  .intentions-form {
    padding: 24px;
  }

  .intentions-types {
    padding: 72px 0;
  }

  .intentions-support {
    padding: 58px 0 80px;
  }

  .intentions-support-card {
    padding: 25px;
  }
}


/* V89 — identidade oficial do Acampamento Trekking */
.camp20-card-art.trekking-art img {
  width: 178px;
  height: 178px;
  object-fit: contain;
  opacity: 1;
  filter: drop-shadow(0 12px 24px rgba(0,0,0,.18));
}
.camp20-detail-emblem.trekking-emblem::before {
  border-color: rgba(255,255,255,.16);
}
.camp20-detail-emblem.trekking-emblem img {
  width: min(82%, 430px);
  height: min(82%, 430px);
  object-fit: contain;
  filter: drop-shadow(0 20px 38px rgba(0,0,0,.22));
}


/* V92 — revisão e consolidação da Agenda Interna */
.agenda-aliases { margin:-2px 0 9px; color:#8a8080; font-size:12px; line-height:1.4; }
.agenda-phone-pending { display:inline-flex; align-items:center; min-height:42px; padding:9px 13px; border-radius:999px; background:rgba(199,168,106,.12); color:#8a6b2e; font-size:13px; font-weight:700; white-space:nowrap; }
.agenda-shared-phone { margin-top:8px; color:#9b6d30; font-size:11px; font-weight:700; }


/* V92 — Agenda no rodapé + exit intent da Home */
.footer-links a[data-agenda-interna]{opacity:.72}.footer-links a[data-agenda-interna]:hover{opacity:1}.home-exit-modal{position:fixed;inset:0;z-index:220;display:grid;place-items:center;padding:22px;background:rgba(4,18,36,.56);backdrop-filter:blur(7px);opacity:0;transition:opacity .2s ease}.home-exit-modal[hidden]{display:none}.home-exit-modal.is-open{opacity:1}.home-exit-card{width:min(700px,100%);padding:38px;border-radius:28px;background:#fff;box-shadow:0 32px 100px rgba(0,0,0,.25);transform:translateY(12px) scale(.985);transition:transform .2s ease}.home-exit-modal.is-open .home-exit-card{transform:none}.home-exit-card h2{margin-top:6px;color:var(--blue-deep);font-size:48px}.home-exit-card>p:not(.eyebrow){margin-top:14px;color:#69717a;font-size:16px;line-height:1.65}.home-exit-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.home-exit-actions .btn-outline-dark{border:1px solid rgba(11,40,80,.22);color:var(--blue-deep);background:#fff}.home-exit-actions .btn-outline-dark:hover{background:rgba(11,40,80,.06)}@media(max-width:720px){.home-exit-card{padding:28px 22px}.home-exit-card h2{font-size:39px}.home-exit-actions{display:grid}.home-exit-actions .btn{width:100%}}


/* V92 — contato compartilhado consolidado */
.agenda-shared-details { display:flex; flex-wrap:wrap; gap:8px 10px; align-items:center; margin-top:7px; color:#687078; font-size:13px; line-height:1.45; }
.agenda-shared-details span { display:inline; }
.agenda-shared-details strong { color:var(--blue-deep); font-weight:800; }
.agenda-shared-details b { color:var(--gold); font-weight:800; }


/* V93 — Destaque do 2º Trekking */
.camp20-detail-cta-note{margin:24px 0 26px;padding:20px;border:1px solid rgba(199,168,106,.38);border-radius:18px;background:rgba(199,168,106,.08)}
.camp20-detail-cta-note small,.camp20-detail-cta-note strong,.camp20-detail-cta-note span{display:block}.camp20-detail-cta-note small{color:var(--gold-dark);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.camp20-detail-cta-note strong{margin-top:5px;color:var(--blue-deep);font-size:22px}.camp20-detail-cta-note span{margin:5px 0 15px;color:#687078;font-size:13px}.camp20-detail-cta-note .btn{width:max-content}


/* ==========================================================
   V96 — identidades oficiais: Mães e Pais, Dízimo, JOAM,
   Sênior, Pré-Mirim VOEI e marca geral dos cards dourados
   ========================================================== */

/* Mães e Pais: o próprio arquivo usa exatamente o azul institucional */
.group-card[href="grupos/terco-pais-maes-filhos.html"] .group-card-media {
  background: var(--blue-deep);
}
.group-card[href="grupos/terco-pais-maes-filhos.html"] .group-card-media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* Dízimo: logo completa na página e símbolo também no acesso rápido */
.service-card[href="dimensoes/pastoral-do-dizimo.html"] .service-icon img {
  width: 38px;
  height: 38px;
  object-fit: contain;
}
.project-detail-logo img[alt="Pastoral do Dízimo"] {
  width: min(92%, 430px);
  max-height: 430px;
  object-fit: contain;
}

/* Marca geral no card dourado */
.pastoral-card.is-special-gold .pastoral-logo img[src$="logo-santuario-simples-branca.png"] {
  width: min(74%, 250px);
  max-height: 190px;
  object-fit: contain;
  filter: none;
}

/* Logos próprias dos Acampamentos */
.camp20-card-art.voei-art img {
  width: 184px;
  height: 184px;
  opacity: 1;
}
.camp20-card-art.joam-art img {
  width: 166px;
  height: 166px;
  opacity: 1;
  border-radius: 18px;
  box-shadow: 0 14px 34px rgba(0,0,0,.22);
}
.camp20-card-art.senior-art img {
  width: 168px;
  height: 178px;
  opacity: 1;
}
.camp20-detail-emblem.voei-emblem img {
  width: min(82%, 390px);
  height: min(82%, 390px);
  opacity: 1;
}
.camp20-detail-emblem.joam-emblem img {
  width: min(76%, 370px);
  height: min(76%, 370px);
  border-radius: 28px;
  box-shadow: 0 20px 52px rgba(0,0,0,.24);
  opacity: 1;
}
.camp20-detail-emblem.senior-emblem img {
  width: min(62%, 300px);
  height: min(78%, 410px);
  opacity: 1;
}
.camp20-detail-emblem.voei-emblem::before,
.camp20-detail-emblem.joam-emblem::before,
.camp20-detail-emblem.senior-emblem::before {
  opacity: .55;
}


/* V100 — revisão final de cabeçalhos e logos */
.group-card[href="grupos/mulheres-de-fe.html"] .group-card-logo-wrap {
  width: min(74%, 218px);
  min-height: 136px;
  padding: 16px;
}
.group-card[href="grupos/mulheres-de-fe.html"] .group-card-logo-wrap img {
  width: 82%;
  max-height: 124px;
  object-fit: contain;
}


/* ==========================================================
   V102 — AGENDA PAROQUIAL FLUTUANTE + ACESSO SERVOS
   ========================================================== */
.agenda-float {
  text-decoration: none;
}
.agenda-float .agenda-float-icon {
  color: var(--blue-deep);
}
.agenda-float .agenda-float-icon svg {
  width: 25px;
  height: 25px;
  display: block;
}
.agenda-float:hover .agenda-float-icon {
  color: var(--blue);
}


@media (max-width: 430px) {
  .brand-site-logo { width: min(285px, 72vw); height: auto; max-height: 58px; }
  .main-nav { padding-left: 22px; padding-right: 22px; }
}


/* ==========================================================
   V105 — JEN / TAKION · CARTÃO PROFISSIONAL
   ========================================================== */
.footer-bottom .jen-credit{color:rgba(255,255,255,.62);font-size:12px;text-decoration:none;transition:color .2s ease}.footer-bottom .jen-credit:hover{color:var(--gold-light)}
.jen-page{background:var(--paper);color:var(--blue-deep)}
.jen-hero{padding:170px 0 110px;background:radial-gradient(circle at 78% 18%,rgba(200,168,91,.18),transparent 30%),linear-gradient(180deg,#fff 0%,var(--paper) 100%)}
.jen-hero-grid{display:grid;grid-template-columns:1.1fr .55fr;gap:90px;align-items:center}
.jen-hero h1{font-size:clamp(68px,8vw,118px);line-height:.84;letter-spacing:-.045em}
.jen-lead{max-width:650px;margin-top:28px;font-size:20px;line-height:1.65;color:#566274}
.jen-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}.jen-actions .btn-outline-dark{border:1px solid rgba(11,40,80,.28);color:var(--blue-deep)}
.jen-card{min-height:410px;padding:42px;border-radius:30px;background:var(--blue-deep);color:#fff;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:0 30px 70px rgba(7,27,53,.18);position:relative;overflow:hidden}
.jen-card::before{content:"";position:absolute;width:260px;height:260px;border:1px solid rgba(200,168,91,.26);border-radius:50%;right:-90px;top:-90px;box-shadow:0 0 0 55px rgba(200,168,91,.025),0 0 0 110px rgba(200,168,91,.018)}
.jen-card small{color:var(--gold-light);font-size:12px;letter-spacing:.16em;text-transform:uppercase}.jen-card strong{font-family:var(--font-display);font-size:72px;font-weight:400;line-height:1;margin-top:8px}.jen-card span{font-size:18px;color:rgba(255,255,255,.76);margin-top:6px}.jen-card p{margin-top:36px;color:rgba(255,255,255,.55)}.jen-card a{margin-top:8px;color:#fff;font-weight:700}
.jen-services{background:#fff}.jen-section-head{display:grid;grid-template-columns:1fr .7fr;gap:80px;align-items:end;margin-bottom:50px}.jen-section-head h2{font-size:clamp(48px,5.8vw,78px)}.jen-section-head>p{color:#66717d;max-width:520px}
.jen-skill-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.jen-skill-grid article{min-height:280px;padding:28px;border:1px solid var(--line);border-radius:22px;background:var(--paper);transition:transform .2s ease,border-color .2s ease}.jen-skill-grid article:hover{transform:translateY(-5px);border-color:rgba(200,168,91,.52)}.jen-skill-grid span{font-size:12px;color:var(--gold);letter-spacing:.12em}.jen-skill-grid h3{margin-top:38px;font-size:29px;line-height:1.05}.jen-skill-grid p{margin-top:14px;color:#68727d;font-size:14px;line-height:1.65}
.jen-project{background:var(--blue-deep);color:#fff}.jen-project-grid{display:grid;grid-template-columns:1.05fr .75fr;gap:100px;align-items:center}.jen-project h2{color:#fff;font-size:clamp(48px,6vw,78px);line-height:.95}.jen-project p:not(.eyebrow){max-width:680px;margin:24px 0;color:rgba(255,255,255,.68);font-size:18px;line-height:1.65}.jen-project-facts{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(255,255,255,.16);border-left:1px solid rgba(255,255,255,.16)}.jen-project-facts div{padding:26px;border-right:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.16)}.jen-project-facts small{display:block;color:var(--gold-light);text-transform:uppercase;letter-spacing:.13em;font-size:11px}.jen-project-facts strong{display:block;margin-top:10px;font-size:17px}
.jen-contact{background:var(--paper)}.jen-contact-grid{display:grid;grid-template-columns:1fr .7fr;gap:100px;align-items:center}.jen-contact h2{font-size:clamp(50px,6vw,82px);line-height:.94}.jen-contact-card{padding:36px;border-radius:24px;background:#fff;border:1px solid var(--line);box-shadow:0 18px 50px rgba(7,27,53,.07)}.jen-contact-card strong{display:block;font-family:var(--font-display);font-size:38px;font-weight:400}.jen-contact-card span{display:block;color:var(--gold);margin-top:5px}.jen-contact-card a{display:inline-block;margin-top:28px;padding:14px 18px;border-radius:999px;background:var(--blue-deep);color:#fff;font-weight:700}.jen-contact-card p{margin-top:22px;color:#69737e;font-size:14px;line-height:1.65}
@media(max-width:1050px){.jen-skill-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){.jen-hero{padding:125px 0 70px}.jen-hero-grid,.jen-section-head,.jen-project-grid,.jen-contact-grid{grid-template-columns:1fr;gap:42px}.jen-card{min-height:310px}.jen-card strong{font-size:58px}.jen-project-grid{gap:55px}.footer-bottom{gap:14px;flex-wrap:wrap}}
@media(max-width:560px){.jen-hero h1{font-size:64px}.jen-lead{font-size:17px}.jen-skill-grid{grid-template-columns:1fr}.jen-skill-grid article{min-height:auto}.jen-project-facts{grid-template-columns:1fr}.jen-actions .btn{width:100%}.jen-card{padding:30px}.footer-bottom .jen-credit{width:100%;order:2}}


/* ==========================================================
   V112 — IDENTIDADES CERCO DE JERICÓ E ACAMPAMENTO DA FAMÍLIA
   ========================================================== */
.group-card[href="grupos/cerco-de-jerico.html"] .group-card-media { background: var(--blue-deep); padding: 10px; }
.group-card[href="grupos/cerco-de-jerico.html"] .group-card-media img { width: 92%; height: 92%; object-fit: contain; }
.camp20-card-art.familia-art img { width: 166px; height: 166px; opacity: 1; }
.camp20-detail-emblem.familia-emblem img { width: min(76%, 370px); height: min(78%, 410px); opacity: 1; }

/* V114 — álbum de fotos das Células */
.cells-directory-card-photo {
  position: relative;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.cells-directory-card-photo:hover,
.cells-directory-card-photo:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 16px 34px rgba(11, 40, 80, .14);
  border-color: rgba(198, 157, 74, .72);
  outline: none;
}
.cells-directory-card-photo .cells-directory-logo {
  transition: transform .22s ease;
}
.cells-directory-card-photo:hover .cells-directory-logo,
.cells-directory-card-photo:focus-visible .cells-directory-logo {
  transform: scale(1.035);
}
.cells-directory-photo-hint {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  margin-top: .7rem;
  font-size: .72rem;
  line-height: 1;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #9a7226;
}
.cells-directory-photo-hint::before {
  content: "▣";
  font-size: .9rem;
}
.cells-photo-open {
  overflow: hidden;
}
.cells-photo-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: 22px;
  opacity: 0;
  visibility: hidden;
  transition: opacity .18s ease, visibility .18s ease;
}
.cells-photo-modal[aria-hidden="false"] {
  opacity: 1;
  visibility: visible;
}
.cells-photo-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(4, 16, 33, .9);
  backdrop-filter: blur(8px);
}
.cells-photo-dialog {
  position: relative;
  z-index: 1;
  width: min(1040px, 94vw);
  max-height: 92vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 22px;
  background: #f8f4e9;
  box-shadow: 0 28px 90px rgba(0, 0, 0, .38);
}
.cells-photo-stage {
  min-height: 0;
  flex: 1 1 auto;
  display: grid;
  place-items: center;
  background: #071b35;
  overflow: hidden;
}
.cells-photo-stage img {
  display: block;
  width: 100%;
  height: min(76vh, 760px);
  object-fit: contain;
  object-position: center;
}
.cells-photo-caption {
  padding: 15px 20px 17px;
  background: #f8f4e9;
}
.cells-photo-caption small {
  display: block;
  margin-bottom: 3px;
  color: #9a7226;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.cells-photo-caption h3 {
  margin: 0;
  color: #0b2850;
  font-size: clamp(1.15rem, 2vw, 1.55rem);
}
.cells-photo-close {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.94);
  color: #071b35;
  font-size: 1.8rem;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 5px 18px rgba(0,0,0,.2);
}
.cells-photo-close:focus-visible {
  outline: 3px solid #d4af62;
  outline-offset: 2px;
}
@media (max-width: 640px) {
  .cells-photo-modal { padding: 10px; }
  .cells-photo-dialog { width: 100%; border-radius: 16px; max-height: 94vh; }
  .cells-photo-stage img { height: 77vh; }
  .cells-photo-caption { padding: 12px 15px 14px; }
  .cells-directory-photo-hint { font-size: .66rem; }
}

/* V117 — Núcleo Trekking: nomes oficiais e identificação na Agenda Interna */


/* V121 — área interna: dizimistas e aniversariantes */
.agenda-view-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;margin-bottom:6px}.agenda-view-tab{border:1px solid rgba(7,27,53,.16);background:#fff;color:#071b35;border-radius:999px;padding:10px 16px;font:inherit;font-weight:700;cursor:pointer}.agenda-view-tab.is-active{background:#071b35;color:#fff;border-color:#071b35}.agenda-birthday-tools{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-top:8px;margin-bottom:8px}.agenda-birthday-tools label{display:flex;flex-direction:column;gap:6px;font-size:.82rem;font-weight:700;color:#071b35}.agenda-birthday-tools select{min-width:180px;border:1px solid rgba(7,27,53,.18);border-radius:10px;padding:10px 12px;background:#fff;color:#071b35}.agenda-today{padding:10px 16px}.agenda-record-meta{display:flex;flex-direction:column;gap:4px;margin-top:7px;color:#536174;font-size:.9rem}.agenda-record-pending{margin-top:8px;font-size:.76rem;color:#8a5b00;background:#fff4d6;border:1px solid #ead59b;border-radius:8px;padding:5px 8px;display:inline-block}.agenda-status{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:6px 9px}.agenda-status.is-ok{background:#e9f7ef;color:#23613a}.agenda-status.is-review{background:#fff4d6;color:#8a5b00}.agenda-limit-note{grid-column:1/-1;padding:14px;border-radius:10px;background:#eef3f8;color:#536174;text-align:center}.agenda-person-record .agenda-contact-actions{min-width:250px}@media(max-width:720px){.agenda-person-record .agenda-contact-actions{min-width:0}.agenda-view-tabs{gap:7px}.agenda-view-tab{flex:1 1 auto;padding:9px 11px;font-size:.84rem}.agenda-birthday-tools{align-items:stretch}.agenda-birthday-tools label,.agenda-birthday-tools select{width:100%}}

/* V121 — fotos das células em 16:9 */
.cells-photo-modal-image img,[data-cells-photo-image]{aspect-ratio:16/9;object-fit:contain;max-height:min(78vh,900px);background:#071b35}


/* V122 — Aniversariantes do dia + envio interno */
.birthday-daily-modal{position:fixed;inset:0;z-index:10020;display:grid;place-items:center;padding:20px;background:rgba(7,27,53,.76);backdrop-filter:blur(7px);opacity:0;visibility:hidden;transition:.22s ease}
.birthday-daily-modal.is-open{opacity:1;visibility:visible}
.birthday-daily-card{position:relative;width:min(620px,94vw);padding:40px 38px 30px;border-radius:28px;background:#fff;box-shadow:0 28px 80px rgba(0,0,0,.28);text-align:center;border:1px solid rgba(184,143,57,.28)}
.birthday-daily-card:before{content:"";display:block;width:72px;height:4px;margin:0 auto 20px;border-radius:4px;background:#b88f39}
.birthday-daily-card h2{margin:.25rem 0 1rem;color:#071b35;font-size:clamp(2rem,5vw,3.4rem);line-height:.95}
.birthday-daily-close{position:absolute;top:14px;right:16px;width:42px;height:42px;border:0;border-radius:50%;background:#f4f1ea;color:#071b35;font-size:28px;cursor:pointer}
.birthday-daily-names{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 12px;margin:18px 0;color:#b88f39;font-size:clamp(1.45rem,3.6vw,2.3rem)}
.birthday-daily-names span{color:#b9b0a2}
.birthday-daily-blessing{max-width:500px;margin:0 auto;color:#4e5b69;font-size:1.02rem;line-height:1.55}
.birthday-daily-timer{display:flex;justify-content:center;align-items:center;gap:5px;margin-top:20px;color:#7c8792;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}
.birthday-daily-timer strong{color:#071b35;font-size:1rem}
.agenda-contact-card.is-birthday-today{border-color:rgba(184,143,57,.55);box-shadow:0 12px 34px rgba(184,143,57,.12)}
.agenda-birthday-today-label{display:inline-flex;margin-top:8px;padding:5px 9px;border-radius:999px;background:#fff6dc;color:#87641c;font-size:.73rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.agenda-birthday-send{margin-top:8px;white-space:nowrap;text-align:center}
.agenda-birthday-sent{display:inline-flex;align-items:center;justify-content:center;margin-top:8px;padding:9px 12px;border-radius:12px;background:#eaf7ef;color:#267044;font-size:.82rem;font-weight:700}
@media(max-width:640px){.birthday-daily-card{padding:34px 22px 25px;border-radius:22px}.birthday-daily-names{gap:7px 9px}.agenda-birthday-send{width:100%}}


/* V125 — filtros de aniversariantes: Hoje, Próximos e Mês */
.agenda-birthday-tools{align-items:center;gap:12px 10px;margin-top:10px;margin-bottom:18px}
.agenda-birthday-filter-title{color:#071b35;font-size:15px;font-weight:800;letter-spacing:.02em}
.agenda-birthday-filter{min-height:44px;padding:10px 18px;border:1px solid rgba(7,27,53,.16);border-radius:999px;background:#fff;color:#071b35;font-size:16px;font-weight:800;line-height:1;cursor:pointer}
.agenda-birthday-filter:hover,.agenda-birthday-filter.is-active{background:#071b35;color:#fff;border-color:#071b35}
.agenda-birthday-tools label{display:flex;flex-direction:row;align-items:center;gap:9px;color:#071b35;font-size:15px;font-weight:800}
.agenda-birthday-tools label>span{font-size:15px}
.agenda-birthday-tools select{min-width:205px;min-height:44px;padding:10px 38px 10px 14px;border-radius:12px;font-size:16px;font-weight:650}
.agenda-birthday-tools + .agenda-results .agenda-contact-card h2{font-size:29px}
.agenda-birthday-tools + .agenda-results .agenda-record-meta{font-size:15px;line-height:1.5}
.agenda-birthday-tools + .agenda-results .agenda-phone{font-size:18px}
.agenda-birthday-tools + .agenda-results .agenda-birthday-today-label,.agenda-birthday-tools + .agenda-results .agenda-birthday-sent{font-size:13px}
@media(max-width:720px){.agenda-birthday-tools{align-items:stretch}.agenda-birthday-filter-title{width:100%;font-size:14px}.agenda-birthday-filter{flex:1 1 calc(50% - 5px);font-size:15px}.agenda-birthday-tools label{width:100%;display:grid;grid-template-columns:auto 1fr;font-size:14px}.agenda-birthday-tools select{width:100%;min-width:0;font-size:16px}.agenda-birthday-tools + .agenda-results .agenda-contact-card h2{font-size:26px}.agenda-birthday-tools + .agenda-results .agenda-record-meta{font-size:14px}}

/* V126: birthday filters only on birthday tab */
.agenda-birthday-tools[hidden]{display:none!important}

/* V129 · Transposição de cifras — Pastoral da Música */
.chord-transposer-section {
  background: #f7f3ea;
  border-top: 1px solid rgba(11, 40, 80, .08);
  border-bottom: 1px solid rgba(11, 40, 80, .08);
}
.chord-transposer-heading {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(320px, 1.15fr);
  gap: 44px;
  align-items: end;
  margin-bottom: 28px;
}
.chord-transposer-heading h2 {
  margin: 6px 0 0;
  color: #0b2850;
}
.chord-transposer-heading > p {
  margin: 0;
  max-width: 720px;
  color: #526173;
  font-size: 1.04rem;
  line-height: 1.65;
}
.chord-transposer-card {
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 18px 52px rgba(11, 40, 80, .10);
  border: 1px solid rgba(11, 40, 80, .09);
  overflow: hidden;
}
.chord-transposer-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 16px;
  align-items: end;
  padding: 24px 26px;
  background: #0b2850;
}
.chord-transposer-controls label {
  display: grid;
  gap: 8px;
  color: #fff;
  font-weight: 700;
}
.chord-transposer-controls label > span {
  font-size: .82rem;
  text-transform: uppercase;
  letter-spacing: .10em;
  color: rgba(255,255,255,.72);
}
.chord-transposer-controls select {
  width: 100%;
  min-height: 52px;
  padding: 0 44px 0 16px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 14px;
  background: #fff;
  color: #0b2850;
  font: inherit;
  font-size: 1.12rem;
  font-weight: 800;
}
.chord-swap {
  width: 52px;
  height: 52px;
  border: 1px solid rgba(255,255,255,.30);
  border-radius: 50%;
  background: rgba(255,255,255,.10);
  color: #fff;
  font-size: 1.5rem;
  cursor: pointer;
  transition: transform .18s ease, background .18s ease;
}
.chord-swap:hover,
.chord-swap:focus-visible {
  background: rgba(255,255,255,.20);
  transform: rotate(180deg);
  outline: none;
}
.chord-transposer-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 26px;
  border-bottom: 1px solid #e6e9ee;
}
.chord-transposer-summary small {
  color: #6d7886;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.chord-transposer-summary strong {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #0b2850;
  font-size: 1.55rem;
}
.chord-transposer-summary strong b {
  color: #b38a43;
  font-weight: 500;
}
.chord-map {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  padding: 24px 26px 26px;
}
.chord-map-item {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 10px;
  min-height: 62px;
  padding: 12px 14px;
  border-radius: 14px;
  background: #f5f7fa;
  border: 1px solid #e3e8ef;
  text-align: center;
}
.chord-map-item span,
.chord-map-item strong {
  font-size: 1.17rem;
}
.chord-map-item span {
  color: #4d5b6b;
  font-weight: 700;
}
.chord-map-item b {
  color: #b38a43;
  font-weight: 600;
}
.chord-map-item strong {
  color: #0b2850;
  font-weight: 900;
}
.chord-transposer-tip {
  margin: 0 26px 26px;
  padding: 16px 18px;
  border-left: 4px solid #b38a43;
  border-radius: 0 12px 12px 0;
  background: #fff9ec;
  color: #566272;
  line-height: 1.55;
}
.chord-transposer-tip strong,
.chord-transposer-tip b {
  color: #0b2850;
}
@media (max-width: 900px) {
  .chord-transposer-heading {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .chord-map {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .chord-transposer-section {
    padding-top: 52px;
    padding-bottom: 52px;
  }
  .chord-transposer-heading {
    margin-bottom: 20px;
  }
  .chord-transposer-heading > p {
    font-size: 1rem;
  }
  .chord-transposer-card {
    border-radius: 18px;
  }
  .chord-transposer-controls {
    grid-template-columns: 1fr auto 1fr;
    gap: 8px;
    padding: 18px 14px;
  }
  .chord-transposer-controls label > span {
    font-size: .72rem;
    letter-spacing: .06em;
  }
  .chord-transposer-controls select {
    min-height: 48px;
    padding-left: 11px;
    padding-right: 28px;
    font-size: 1rem;
  }
  .chord-swap {
    width: 44px;
    height: 44px;
    margin-bottom: 2px;
    font-size: 1.25rem;
  }
  .chord-transposer-summary {
    padding: 18px 16px;
  }
  .chord-transposer-summary small {
    font-size: .68rem;
  }
  .chord-transposer-summary strong {
    gap: 8px;
    font-size: 1.28rem;
  }
  .chord-map {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 16px;
  }
  .chord-map-item {
    min-height: 50px;
    padding: 9px 16px;
  }
  .chord-map-item span,
  .chord-map-item strong {
    font-size: 1.13rem;
  }
  .chord-transposer-tip {
    margin: 0 16px 18px;
    padding: 14px 15px;
    font-size: .94rem;
  }
}


/* V137 — logos gerais dos acampamentos em branco nos cards e páginas internas */
.camp20-card-art img[src*="logo-acampamentos"],
.camp20-detail-emblem img[src*="logo-acampamentos"] {
  filter: brightness(0) invert(1);
  opacity: 1;
}


/* V140 — Cores Litúrgicas */
.liturgy-colors { background:#fbfaf7; }
.liturgy-colors-grid {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:16px;
  margin-top:34px;
}
.liturgy-color-card {
  min-height:285px;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid rgba(11,40,80,.10);
  border-radius:24px;
  background:#fff;
  box-shadow:0 16px 42px rgba(8,27,52,.06);
}
.liturgy-color-sample { height:82px; width:100%; display:block; }
.liturgy-color-card > div { padding:22px 20px 24px; }
.liturgy-color-card small {
  display:block;
  margin-bottom:7px;
  color:#8a7450;
  font-size:11px;
  font-weight:800;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.liturgy-color-card h3 { margin:0; color:var(--blue-deep); font-size:31px; }
.liturgy-color-card p { margin:10px 0 0; color:#687078; font-size:14px; line-height:1.62; }
.liturgy-color-card.is-green .liturgy-color-sample { background:#2f6b45; }
.liturgy-color-card.is-red .liturgy-color-sample { background:#a52b2b; }
.liturgy-color-card.is-rose .liturgy-color-sample { background:#c9798e; }
.liturgy-color-card.is-white .liturgy-color-sample {
  background:linear-gradient(115deg,#fff 0%,#f8f3e5 50%,#c8a85b 100%);
  border-bottom:1px solid rgba(11,40,80,.08);
}
.liturgy-color-card.is-violet .liturgy-color-sample { background:#5d3a72; }
.liturgy-colors-note {
  max-width:900px;
  margin:24px 0 0;
  color:#7a7f84;
  font-size:13px;
  line-height:1.6;
}
@media (max-width:1080px){ .liturgy-colors-grid{grid-template-columns:repeat(3,minmax(0,1fr));} }
@media (max-width:720px){
  .liturgy-colors-grid{grid-template-columns:1fr;gap:12px;}
  .liturgy-color-card{min-height:0;display:grid;grid-template-columns:76px 1fr;}
  .liturgy-color-sample{height:100%;min-height:150px;}
  .liturgy-color-card > div{padding:20px;}
  .liturgy-color-card h3{font-size:28px;}
}


/* V141 — revisão das cores litúrgicas */
.liturgy-colors-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.liturgy-color-card.is-black .liturgy-color-sample { background:#181818; }
.liturgy-colors-notes { max-width:980px; margin:26px 0 0; display:grid; gap:9px; }
.liturgy-colors-notes p { margin:0; color:#7a7f84; font-size:13px; line-height:1.65; }
.liturgy-colors-notes strong { color:var(--blue-deep); }
@media (max-width:1080px){ .liturgy-colors-grid{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width:720px){ .liturgy-colors-grid{grid-template-columns:1fr;} }


/* V142 — aniversários sincronizados no servidor + pop-up mais equilibrado */
.birthday-daily-names{font-size:clamp(1.02rem,2.15vw,1.38rem);line-height:1.35;gap:7px 10px;max-width:520px;margin-left:auto;margin-right:auto}
.birthday-daily-names strong{font-weight:750}
.agenda-birthday-syncing,.agenda-birthday-sync-error{display:inline-flex;align-items:center;justify-content:center;margin-top:8px;padding:9px 12px;border-radius:12px;font-size:.78rem;font-weight:700;line-height:1.3;text-align:center}
.agenda-birthday-syncing{background:#eef3f8;color:#536174}
.agenda-birthday-sync-error{background:#fff1ee;color:#9a3f32;border:1px solid rgba(154,63,50,.16)}
.agenda-birthday-send:disabled{opacity:.66;cursor:wait}

/* V142 — Ano Litúrgico integrado às cores litúrgicas */
.liturgy-year{background:#fbfaf7}
.liturgy-year-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:36px}
.liturgy-season-card{display:grid;grid-template-columns:16px 1fr;min-height:250px;overflow:hidden;border-radius:24px;background:#fff;border:1px solid rgba(7,27,53,.08);box-shadow:0 16px 42px rgba(7,27,53,.06)}
.liturgy-season-color{display:block;width:100%;height:100%}
.liturgy-season-card>div:last-child{padding:26px 27px 28px}
.liturgy-season-card small,.liturgy-colors-complement-head .eyebrow{display:block;color:#a37b2d;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.liturgy-season-card h3{margin:5px 0 11px;color:var(--blue-deep);font-size:34px}
.liturgy-season-card p{margin:0;color:#687078;font-size:15px;line-height:1.68}
.liturgy-season-card .liturgy-season-note{margin-top:14px;padding-top:13px;border-top:1px solid rgba(7,27,53,.08);font-size:13px}
.liturgy-season-card .liturgy-season-note strong{color:var(--blue-deep)}
.liturgy-season-card.is-violet .liturgy-season-color{background:#5d3a72}
.liturgy-season-card.is-white .liturgy-season-color{background:linear-gradient(180deg,#fff,#eee8db);box-shadow:inset -1px 0 rgba(7,27,53,.08)}
.liturgy-season-card.is-green .liturgy-season-color{background:#2f6b45}
.liturgy-season-card.is-triduum{grid-template-columns:16px 1fr}
.liturgy-season-multicolor{display:grid;grid-template-rows:repeat(3,1fr);height:100%}
.liturgy-season-multicolor span{display:block}
.liturgy-season-multicolor .is-white{background:#f7f4eb}
.liturgy-season-multicolor .is-red{background:#a52b2b}
.liturgy-colors-complement{margin-top:42px;padding-top:36px;border-top:1px solid rgba(7,27,53,.1)}
.liturgy-colors-complement-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:20px}
.liturgy-colors-complement-head h3{margin:0;color:var(--blue-deep);font-size:31px}
.liturgy-colors-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.liturgy-colors-grid.compact .liturgy-color-card h3{font-size:27px}
.liturgy-colors-grid.compact .liturgy-color-sample{height:56px}
.liturgy-color-card.is-gold .liturgy-color-sample{background:linear-gradient(135deg,#8c6720,#d6b562,#9c7528)}
.liturgy-cycle-note{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:26px}
.liturgy-cycle-note>div{padding:20px 22px;border-radius:18px;background:#fff;border:1px solid rgba(7,27,53,.08)}
.liturgy-cycle-note small{display:block;color:#a37b2d;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.liturgy-cycle-note strong{display:block;margin-top:6px;color:var(--blue-deep);font-size:15px;line-height:1.45}
.liturgy-cycle-note p{margin:7px 0 0;color:#687078;font-size:13px;line-height:1.55}
.liturgy-year-closing{max-width:880px;margin:26px auto 0;text-align:center;color:var(--blue-deep);font-family:var(--font-display);font-size:clamp(22px,3vw,32px);line-height:1.25}
@media(max-width:980px){.liturgy-colors-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.liturgy-year-grid,.liturgy-cycle-note{grid-template-columns:1fr}.liturgy-season-card{min-height:0;grid-template-columns:10px 1fr}.liturgy-season-card.is-triduum{grid-template-columns:10px 1fr}.liturgy-season-card>div:last-child{padding:22px 20px 24px}.liturgy-season-card h3{font-size:30px}.liturgy-colors-complement-head{display:block}.liturgy-colors-complement-head h3{margin-top:4px;font-size:28px}.liturgy-colors-grid.compact{grid-template-columns:1fr}.birthday-daily-names{font-size:1.02rem;line-height:1.4}}

/* =========================================================
   V145 — identificação dos vínculos paroquiais em Servos
   ========================================================= */
.agenda-parish-links{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  margin-top:8px;
}
.agenda-parish-badge{
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:26px;
  padding:5px 9px;
  border-radius:999px;
  border:1px solid rgba(184,143,57,.28);
  background:rgba(184,143,57,.10);
  color:#765813;
  font-size:.72rem;
  line-height:1.1;
}
.agenda-parish-badge strong{
  font:inherit;
  font-weight:800;
  letter-spacing:.02em;
}
.agenda-parish-badge small{
  font:inherit;
  color:#536174;
}
.agenda-parish-links.is-compact{
  justify-content:center;
  margin-top:5px;
}
.agenda-parish-links.is-compact .agenda-parish-badge{
  min-height:22px;
  padding:4px 8px;
  font-size:.64rem;
  background:#f5efe0;
}
.birthday-daily-names{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  width:100%;
}
.birthday-daily-person{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-width:0;
  padding:10px 12px;
  border-radius:14px;
  background:#fbfaf7;
  border:1px solid rgba(7,27,53,.08);
}
.birthday-daily-person>strong{
  display:block;
  width:100%;
  color:#b88f39;
  font-size:clamp(.92rem,1.9vw,1.12rem);
  line-height:1.25;
  font-weight:750;
  overflow-wrap:anywhere;
}
.birthday-daily-names .agenda-parish-badge{
  color:#765813;
}
@media(max-width:640px){
  .birthday-daily-names{grid-template-columns:1fr;gap:8px}
  .birthday-daily-person{padding:9px 10px}
  .birthday-daily-person>strong{font-size:.96rem}
}

/* ==========================================================
   V146 — PRÓXIMOS EVENTOS + POP-UP FORMAÇÃO TREKKING
   ========================================================== */
.home-events { background:#f7f4ed; }
.home-events-heading { align-items:end; gap:42px; margin-bottom:34px; }
.home-events-heading > p { max-width:560px; color:#687078; line-height:1.65; }
.home-events-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.home-event-card { min-width:0; overflow:hidden; border:1px solid rgba(11,40,80,.10); border-radius:28px; background:#fff; box-shadow:0 18px 48px rgba(7,27,53,.07); }
.home-event-media { display:block; aspect-ratio:9/16; overflow:hidden; background:#0b2850; }
.home-event-media img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s ease; }
.home-event-card:hover .home-event-media img { transform:scale(1.025); }
.home-event-copy { padding:24px 24px 27px; }
.home-event-copy small { display:block; color:#9a762e; font-size:11px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.home-event-copy h3 { margin:8px 0 10px; color:var(--blue-deep); font-size:27px; line-height:1.08; }
.home-event-copy p { margin:0 0 18px; color:#687078; font-size:14px; line-height:1.65; }
.home-event-copy .text-link { color:var(--blue-deep); font-weight:800; }

.event-promo-modal { position:fixed; inset:0; z-index:245; display:grid; place-items:center; padding:24px; background:rgba(3,16,33,.78); backdrop-filter:blur(8px); opacity:0; pointer-events:none; transition:opacity .22s ease; }
.event-promo-modal[hidden] { display:none; }
.event-promo-modal.is-open { opacity:1; pointer-events:auto; }
.event-promo-card { position:relative; width:min(1040px,94vw); max-height:88vh; overflow:auto; border-radius:26px; background:#081d38; box-shadow:0 36px 110px rgba(0,0,0,.42); }
.event-promo-card picture, .event-promo-card img { display:block; width:100%; }
.event-promo-card img { height:auto; max-height:82vh; object-fit:contain; background:#081d38; }
.event-promo-close { position:absolute; top:13px; right:13px; z-index:2; width:44px; height:44px; border:1px solid rgba(255,255,255,.55); border-radius:50%; background:rgba(3,16,33,.78); color:#fff; font-size:27px; line-height:1; cursor:pointer; }
.event-promo-footer { display:flex; justify-content:space-between; gap:16px; align-items:center; padding:15px 18px 17px; background:#081d38; color:#fff; }
.event-promo-footer strong { font-size:15px; }
.event-promo-footer a { color:#fff; font-size:13px; font-weight:800; text-decoration:underline; text-underline-offset:3px; }
html.event-promo-open { overflow:hidden; }

@media (max-width:900px) {
  .home-events-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-events-heading { align-items:start; }
}
@media (max-width:620px) {
  .home-events-grid { grid-template-columns:1fr; gap:20px; }
  .home-event-card { display:grid; grid-template-columns:124px 1fr; border-radius:22px; }
  .home-event-media { aspect-ratio:auto; min-height:210px; }
  .home-event-copy { padding:18px 17px 20px; }
  .home-event-copy h3 { font-size:21px; }
  .home-event-copy p { font-size:13px; line-height:1.55; }
  .event-promo-modal { padding:14px; }
  .event-promo-card { width:min(94vw,520px); border-radius:22px; }
  .event-promo-card img { max-height:78vh; }
  .event-promo-footer { align-items:flex-start; flex-direction:column; }
}
.event-promo-backdrop { position:absolute; inset:0; cursor:pointer; }
.event-promo-card { z-index:1; }


/* ==========================================================
   V147 — Home mais leve + página central de Próximos Eventos
   ========================================================== */
.home-events-compact { padding-top:58px; padding-bottom:62px; }
.home-events-compact .home-events-heading { margin-bottom:26px; }
.home-events-heading-side { max-width:560px; }
.home-events-heading-side p { margin:0 0 10px; color:#687078; line-height:1.6; }
.home-events-mini-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.home-event-mini { min-width:0; display:grid; grid-template-columns:104px minmax(0,1fr); min-height:184px; overflow:hidden; border:1px solid rgba(11,40,80,.10); border-radius:22px; background:#fff; color:inherit; text-decoration:none; box-shadow:0 12px 34px rgba(7,27,53,.055); transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease; }
.home-event-mini:hover { transform:translateY(-3px); border-color:rgba(199,168,106,.48); box-shadow:0 18px 42px rgba(7,27,53,.09); }
.home-event-mini-media { display:block; overflow:hidden; background:#0b2850; }
.home-event-mini-media img { width:100%; height:100%; display:block; object-fit:cover; }
.home-event-mini-copy { min-width:0; display:flex; flex-direction:column; justify-content:center; padding:18px 16px; }
.home-event-mini-copy small { color:#9a762e; font-size:10px; font-weight:800; letter-spacing:.075em; text-transform:uppercase; line-height:1.35; }
.home-event-mini-copy strong { display:block; margin:7px 0 10px; color:var(--blue-deep); font-family:var(--font-display); font-size:20px; line-height:1.08; font-weight:500; }
.home-event-mini-copy > span { color:var(--blue-deep); font-size:12px; font-weight:800; }
.events-page-hero { padding:150px 0 74px; background:linear-gradient(180deg,#f8f5ed 0%,#fff 100%); }
.events-page-hero h1 { max-width:850px; margin:8px 0 18px; color:var(--blue-deep); font-size:clamp(52px,7vw,96px); line-height:.94; }
.events-page-hero > .shell > p:last-child { max-width:760px; color:#687078; font-size:18px; line-height:1.7; }
.events-page-section { padding:42px 0 100px; background:#fff; }
.events-page-list { display:grid; gap:34px; }
.event-detail-card { scroll-margin-top:110px; display:grid; grid-template-columns:minmax(250px,.72fr) minmax(0,1.28fr); gap:34px; align-items:center; padding:24px; border:1px solid rgba(11,40,80,.10); border-radius:30px; background:#fbfaf6; box-shadow:0 18px 55px rgba(7,27,53,.06); }
.event-detail-media { display:block; max-width:420px; justify-self:center; overflow:hidden; border-radius:22px; background:#0b2850; box-shadow:0 15px 36px rgba(7,27,53,.12); }
.event-detail-media img { display:block; width:100%; height:auto; }
.event-detail-copy small { display:block; color:#9a762e; font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.event-detail-copy h2 { margin:9px 0 14px; color:var(--blue-deep); font-size:clamp(34px,4.2vw,58px); line-height:1; }
.event-detail-copy p { max-width:760px; margin:0 0 15px; color:#687078; font-size:16px; line-height:1.7; }
.event-detail-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.events-page-empty { padding:34px; border:1px dashed rgba(11,40,80,.18); border-radius:24px; color:#687078; text-align:center; }
@media (max-width:1050px) {
  .home-events-mini-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-event-mini { grid-template-columns:92px 1fr; min-height:154px; }
  .event-detail-card { grid-template-columns:minmax(220px,.75fr) minmax(0,1.25fr); }
}
@media (max-width:720px) {
  .home-events-mini-grid { grid-template-columns:1fr; }
  .home-events-compact { padding-top:42px; padding-bottom:46px; }
  .home-events-heading-side { max-width:none; }
  .home-event-mini { grid-template-columns:84px 1fr; min-height:142px; border-radius:18px; }
  .home-event-mini-copy { padding:14px 13px; }
  .home-event-mini-copy strong { font-size:18px; }
  .events-page-hero { padding:118px 0 56px; }
  .events-page-hero > .shell > p:last-child { font-size:16px; }
  .events-page-section { padding:28px 0 72px; }
  .event-detail-card { grid-template-columns:1fr; gap:22px; padding:18px; }
  .event-detail-media { width:min(100%,360px); }
  .event-detail-copy h2 { font-size:38px; }
}


/* V150 — identidade oficial do Acampamento Mirim */
.camp20-card-art.mirim-art img {
  width: 176px;
  height: 176px;
  object-fit: contain;
  opacity: 1;
  filter: drop-shadow(0 12px 24px rgba(0,0,0,.20));
}
.camp20-detail-emblem.mirim-emblem img {
  width: min(78%, 390px);
  height: min(78%, 390px);
  object-fit: contain;
  opacity: 1;
  filter: drop-shadow(0 20px 38px rgba(0,0,0,.22));
}


/* ==========================================================
   V151 — LOGOS OFICIAIS DOS ACAMPAMENTOS
   Artes enviadas pela equipe, com campo claro para preservar
   contraste e leitura das identidades originais.
   ========================================================== */
.camp20-card-art.official-light-art {
  background: #fff;
  padding: 14px;
}
.camp20-card-art.official-light-art::after {
  background: rgba(199,168,106,.72);
}
.camp20-card-art.official-light-art .camp20-card-number {
  color: rgba(11,40,80,.52);
}
.camp20-card-art.official-light-art img {
  width: 182px;
  height: 182px;
  object-fit: contain;
  opacity: 1;
  filter: none;
  border-radius: 0;
  box-shadow: none;
}
.camp20-detail-emblem.official-light-emblem {
  background: #fff;
  border: 1px solid rgba(11,40,80,.08);
}
.camp20-detail-emblem.official-light-emblem::before {
  border-color: rgba(199,168,106,.34);
}
.camp20-detail-emblem.official-light-emblem > span {
  color: rgba(11,40,80,.28);
}
.camp20-detail-emblem.official-light-emblem img {
  width: min(84%, 440px);
  height: min(84%, 440px);
  object-fit: contain;
  opacity: 1;
  filter: none;
  border-radius: 0;
  box-shadow: none;
}
@media (max-width: 720px) {
  .camp20-card-art.official-light-art img { width: 166px; height: 166px; }
  .camp20-detail-emblem.official-light-emblem img { width: min(86%, 380px); height: min(86%, 380px); }
}


/* ==========================================================
   V156 — Guia Fraterno integrado à Home
   ========================================================== */
.hero-subtitle-note{margin:8px 0 0;color:rgba(255,255,255,.88);font-family:var(--font-sans);font-size:15px;line-height:1.45;letter-spacing:.02em}
.home-page .main-nav .guide-nav-link{color:var(--gold-light);font-weight:700}
.site-header.is-scrolled .main-nav .guide-nav-link{color:var(--gold-dark)}
.home-guide-fraterno{background:linear-gradient(180deg,#fbfaf6,#fff)}
.home-guide-fraterno-grid{display:grid;grid-template-columns:minmax(230px,.58fr) 1.42fr;gap:64px;align-items:center;padding:34px 0}
.home-guide-fraterno-logo{display:grid;place-items:center;min-height:310px;padding:28px;border-radius:32px;background:#fff;border:1px solid rgba(11,40,80,.08);box-shadow:0 22px 60px rgba(8,27,52,.08);transition:transform .25s ease,box-shadow .25s ease}
.home-guide-fraterno-logo:hover{transform:translateY(-4px);box-shadow:0 28px 70px rgba(8,27,52,.12)}
.home-guide-fraterno-logo img{width:min(100%,310px);height:auto;object-fit:contain}
.home-guide-fraterno-copy h2{margin:0;color:var(--blue-deep);font-size:clamp(48px,5vw,76px);line-height:.96}
.home-guide-fraterno-copy>p:not(.eyebrow){max-width:680px;margin:20px 0 0;color:#66717b;font-size:17px;line-height:1.7}
.home-guide-fraterno-actions{display:flex;flex-wrap:wrap;gap:18px;align-items:center;margin-top:28px}
@media(min-width:1051px){.home-page .brand{min-width:285px}.home-page .main-nav{gap:15px;font-size:13px}}
@media(max-width:820px){.home-guide-fraterno-grid{grid-template-columns:1fr;gap:30px}.home-guide-fraterno-logo{min-height:250px}.home-guide-fraterno-logo img{width:min(75vw,280px)}}
@media(max-width:560px){.home-guide-fraterno-grid{padding:4px 0}.home-guide-fraterno-logo{min-height:220px;padding:22px;border-radius:24px}.home-guide-fraterno-copy h2{font-size:46px}.home-guide-fraterno-actions{display:grid}.home-guide-fraterno-actions .btn{width:100%}}

/* ==========================================================
   V161 — GRUPO DE ORAÇÃO PADRE PIO
   ========================================================== */
.padre-pio-page{--pio-wine:#682735;--pio-wine-dark:#451822;--pio-gold:#c9a75c;--pio-cream:#fbf7ef;background:#fff}.padre-pio-main{padding-top:96px}.padre-pio-hero{background:linear-gradient(135deg,#fff 0%,#fbf7ef 56%,#f6efe4 100%);border-bottom:1px solid rgba(104,39,53,.10)}.padre-pio-hero-grid{align-items:center}.padre-pio-hero h1{color:var(--pio-wine-dark)}.padre-pio-eyebrow{color:var(--pio-wine)}.padre-pio-logo-frame{background:#fff;border:1px solid rgba(104,39,53,.12);box-shadow:0 26px 70px rgba(69,24,34,.10)}.padre-pio-logo-frame::before{border-color:rgba(201,167,92,.42)}.padre-pio-logo-frame img{width:min(84%,470px);height:min(84%,470px);object-fit:contain;border-radius:24px;box-shadow:0 18px 46px rgba(69,24,34,.10)}.padre-pio-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.padre-pio-btn-outline{border:1px solid rgba(104,39,53,.25);color:var(--pio-wine-dark);background:#fff}.padre-pio-btn-outline:hover{background:#f8f0ec}.padre-pio-two-col{display:grid;grid-template-columns:.78fr 1.22fr;gap:72px;align-items:start}.padre-pio-two-col h2,.padre-pio-section-head h2,.padre-pio-video-card h2{margin:0;color:var(--pio-wine-dark);font-family:var(--font-display);font-size:clamp(42px,5vw,72px);font-weight:400;line-height:.98}.padre-pio-copy p{margin:0 0 18px;color:#616970;font-size:17px;line-height:1.75}.padre-pio-bio{background:var(--pio-wine-dark);color:#fff}.padre-pio-bio .padre-pio-section-head h2{color:#fff}.padre-pio-section-head{max-width:840px;margin-bottom:38px}.padre-pio-section-head>p:last-child{color:#747b82;font-size:17px;line-height:1.7}.padre-pio-bio .padre-pio-section-head>p:last-child{color:rgba(255,255,255,.72)}.padre-pio-section-head.center{text-align:center;margin-left:auto;margin-right:auto}.padre-pio-timeline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.padre-pio-timeline article{position:relative;padding:24px 24px 24px 68px;border-radius:20px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.055)}.padre-pio-timeline article>span{position:absolute;left:22px;top:22px;color:var(--pio-gold);font-family:var(--font-display);font-size:24px}.padre-pio-timeline h3{margin:0 0 8px;color:#fff;font-size:19px}.padre-pio-timeline p{margin:0;color:rgba(255,255,255,.72);line-height:1.6}.padre-pio-quote-strip{margin-top:28px;padding:30px 34px;border-left:4px solid var(--pio-gold);background:rgba(255,255,255,.07);border-radius:0 20px 20px 0}.padre-pio-quote-strip p{margin:0;color:#fff;font-family:var(--font-display);font-size:clamp(30px,4vw,50px);line-height:1.05}.padre-pio-quote-strip span{display:block;margin-top:10px;color:var(--pio-gold)}.padre-pio-learned{background:#fff}.padre-pio-lessons-five{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px}.padre-pio-lessons-five article{padding:22px 18px;border:1px solid rgba(104,39,53,.12);border-radius:20px;background:linear-gradient(180deg,#fff,#fcf8f3);box-shadow:0 14px 32px rgba(69,24,34,.05)}.padre-pio-lessons-five article>span{display:block;color:var(--pio-gold);font-family:var(--font-display);font-size:28px}.padre-pio-lessons-five h3{margin:10px 0 9px;color:var(--pio-wine-dark);font-size:18px;line-height:1.25}.padre-pio-lessons-five p{margin:0;color:#697078;font-size:14px;line-height:1.62}.padre-pio-prayer-callout{margin-top:26px;padding:30px;border-radius:22px;background:var(--pio-wine);color:#fff;text-align:center}.padre-pio-prayer-callout strong{display:block;font-family:var(--font-display);font-size:clamp(28px,4vw,46px);font-weight:400}.padre-pio-prayer-callout span{display:block;margin-top:8px;color:#ead9ae}.padre-pio-prayer-callout b{display:block;margin-top:20px;color:#fff;font-size:16px;letter-spacing:.08em;text-transform:uppercase}.padre-pio-teachings{background:var(--pio-cream)}.padre-pio-details-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.padre-pio-details-grid details{border:1px solid rgba(104,39,53,.12);border-radius:18px;background:#fff;overflow:hidden}.padre-pio-details-grid summary{display:flex;align-items:center;gap:14px;min-height:68px;padding:16px 20px;cursor:pointer;color:var(--pio-wine-dark);font-weight:800;list-style:none}.padre-pio-details-grid summary::-webkit-details-marker{display:none}.padre-pio-details-grid summary::after{content:'+';margin-left:auto;color:var(--pio-gold);font-size:24px;font-weight:400}.padre-pio-details-grid details[open] summary::after{content:'–'}.padre-pio-details-grid summary span{color:var(--pio-gold);font-family:var(--font-display);font-size:23px;font-weight:400}.padre-pio-details-grid details>div{padding:0 20px 20px 58px}.padre-pio-details-grid p{margin:0 0 12px;color:#697078;line-height:1.65}.padre-pio-details-grid blockquote{margin:0;padding:16px 18px;border-left:3px solid var(--pio-gold);background:#fcf8f1;color:var(--pio-wine-dark);font-family:var(--font-display);font-size:19px;line-height:1.45}.padre-pio-final-scripture{max-width:900px;margin:34px auto 0;padding:30px;text-align:center}.padre-pio-final-scripture small{display:block;color:#8a6e76;text-transform:uppercase;letter-spacing:.08em}.padre-pio-final-scripture strong{display:block;margin:12px 0;color:var(--pio-wine-dark);font-family:var(--font-display);font-size:clamp(28px,4vw,45px);font-weight:400;line-height:1.15}.padre-pio-final-scripture p{color:#6d747a}.padre-pio-video-section{background:#fff}.padre-pio-video-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:30px;padding:36px 40px;border-radius:28px;background:linear-gradient(135deg,#fff,#faf4eb);border:1px solid rgba(104,39,53,.12);box-shadow:0 20px 55px rgba(69,24,34,.07)}.padre-pio-video-card p:not(.eyebrow){color:#697078;line-height:1.65}.padre-pio-youtube-btn{background:#b6262b;color:#fff;border:1px solid #b6262b;white-space:nowrap}.padre-pio-youtube-btn:hover{background:#971f23}.padre-pio-nucleus{background:#fbf8f2}.padre-pio-nucleus .group-placeholder-grid h2{color:var(--pio-wine-dark)}.group-card[href="grupos/grupo-de-oracao.html"] .group-card-logo-wrap{background:#fff}.group-card[href="grupos/grupo-de-oracao.html"] .group-card-logo-wrap img{width:100%;max-height:128px;border-radius:12px}.group-card[href="grupos/grupo-de-oracao.html"] .group-card-media-title{max-width:96%}@media(max-width:1050px){.padre-pio-lessons-five{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:820px){.padre-pio-two-col,.padre-pio-video-card{grid-template-columns:1fr;gap:30px}.padre-pio-timeline,.padre-pio-details-grid{grid-template-columns:1fr}.padre-pio-lessons-five{grid-template-columns:1fr 1fr}.padre-pio-video-card{padding:28px 24px}.padre-pio-youtube-btn{width:max-content}.padre-pio-logo-frame{min-height:420px}}@media(max-width:560px){.padre-pio-lessons-five{grid-template-columns:1fr}.padre-pio-timeline article{padding-left:60px}.padre-pio-details-grid details>div{padding-left:20px}.padre-pio-hero-actions .btn{width:100%}.padre-pio-youtube-btn{width:100%;text-align:center}.padre-pio-main{padding-top:78px}}
