@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');

/* Optional statistics preferences. */
.analytics-consent { position:fixed; z-index:1100; top:100px; left:20px; width:min(430px,calc(100% - 40px)); max-height:calc(100dvh - 130px); overflow:auto; padding:22px; border:1px solid var(--line); border-radius:16px; background:var(--surface); color:var(--ink); box-shadow:var(--shadow); }
.analytics-consent[hidden] { display:none; }
.analytics-consent h2 { margin:0 0 12px; font-size:1.18rem; line-height:1.25; letter-spacing:-.02em; }
.analytics-consent p { margin:0 0 12px; font-size:.9rem; line-height:1.55; color:var(--ink-soft); }
.analytics-consent-info { color:var(--brand); font-size:.85rem; font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.analytics-consent-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.analytics-consent-actions .button { flex:1 1 145px; min-height:44px; padding:10px 12px; font-size:.76rem; letter-spacing:0; text-transform:none; }
.analytics-preferences { margin:18px 0 24px; padding:20px; border:1px solid var(--line); border-radius:14px; background:var(--surface-2); }
.analytics-preferences p { margin:0 0 14px; }
.analytics-preferences .button { min-height:44px; padding:10px 16px; font-size:.8rem; letter-spacing:0; text-transform:none; }
@media (max-width:480px) { .analytics-consent { top:88px; left:12px; width:calc(100% - 24px); max-height:calc(100dvh - 110px); padding:18px; } }
@media print { .analytics-consent { display:none !important; } }
/* End optional statistics preferences. */

@font-face {
  font-family: "Cormorant Garamond";
  src: url("assets/fonts/cormorant-garamond-latin-400-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Parisienne";
  src: url("assets/fonts/parisienne-latin-400-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Cormorant Garamond";
  src: url("assets/fonts/cormorant-garamond-latin-400-italic.woff2") format("woff2");
  font-style: italic;
  font-weight: 400;
  font-display: swap;
}

:root {
  --ink: #2d241f;
  --ink-soft: #68584d;
  --paper: #f5ede2;
  --surface: #fffaf3;
  --surface-2: #eadbca;
  --line: rgba(95,61,43,.16);
  --brand: #915b3b;
  --brand-bright: #d99a45;
  --brand-deep: #5f3d2b;
  --on-brand: #faf9f6;
  --navy: #1c1b18;
  --navy-2: #292622;
  --white: #faf9f6;
  --shadow: 0 24px 70px rgba(28,27,24,.13);
  --radius: 20px;
  --wrap: min(1160px, calc(100% - 44px));
  color-scheme: light;
}

html[data-theme="dark"] {
  --ink: #fff8ef;
  --ink-soft: #d0bca7;
  --paper: #18120f;
  --surface: #241a16;
  --surface-2: #30221c;
  --line: rgba(255,238,217,.14);
  --brand: #d99a45;
  --brand-deep: #8a5a3b;
  --on-brand: #1c1b18;
  --navy: #0e0a08;
  --navy-2: #1b120e;
  --shadow: 0 24px 70px rgba(0, 0, 0, .3);
  --book-cover: #74482f;
  --book-cover-deep: #3f291f;
  --book-page: #29251f;
  --book-page-soft: #211e1a;
  color-scheme: dark;
}

:root {
  --book-cover: #75472f;
  --book-cover-deep: #4e3022;
  --book-page: #fbf4e5;
  --book-page-soft: #f1e6d1;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 88px; }
body { margin: 0; background:radial-gradient(circle at 8% 12%,color-mix(in srgb,var(--brand-bright) 7%,transparent),transparent 30rem),var(--paper); color: var(--ink); font-family: "DM Sans", system-ui, sans-serif; font-size: 16px; line-height: 1.65; overflow-x: hidden; transition: background .3s ease, color .3s ease; }
body.menu-open, body.modal-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: "Manrope", system-ui, sans-serif; line-height: 1.05; letter-spacing: -.045em; }
h2 { font-size: clamp(2.5rem, 5vw, 4.8rem); margin-bottom: 25px; }
h3 { font-size: 1.25rem; }
.wrap { width: var(--wrap); margin-inline: auto; }
.section { padding: clamp(56px, 6vw, 88px) 0; }
.skip-link { position: fixed; z-index: 9999; left: 18px; top: 18px; transform: translateY(-150%); background: #faf9f6; color: #111; padding: 12px 18px; border-radius: 8px; font-weight: 700; }
.skip-link:focus { transform: none; }
.scroll-progress { position: fixed; left: 0; right: 0; top: 0; z-index: 1001; height: 3px; pointer-events: none; }
.scroll-progress span { display: block; width: 0; height: 100%; background: var(--brand-bright); }

.eyebrow { margin-bottom: 18px; color: var(--brand); font-family: "Manrope", sans-serif; font-size: .78rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.eyebrow.light { color: #e2b56f; }
.large-copy { color: var(--ink-soft); font-size: clamp(1.04rem, 1.5vw, 1.25rem); line-height: 1.7; }
.button { min-height: 54px; padding: 0 24px; border: 1px solid transparent; border-radius: 3px; display: inline-flex; align-items: center; justify-content: center; gap: 22px; font-family: "Manrope", sans-serif; font-size: .76rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; transition: transform .25s ease, box-shadow .25s ease, background .25s ease, border-color .25s ease; cursor: pointer; }
.button:hover { transform: translateY(-3px); box-shadow: 0 15px 35px rgba(138,90,59,.23); }
.button.primary { background: var(--brand-bright); color: #171512; }
.button.compact { min-height: 40px; padding-inline: 20px; background: var(--brand); color: var(--on-brand); border-radius: 30px; }
.button.subtle { border-color: var(--line); background: var(--surface); }
.button.white { background: #faf9f6; color: #1c1b18; }
.button.ghost-light { border-color: rgba(255,255,255,.58); color: #faf9f6; background: rgba(0,0,0,.13); backdrop-filter: blur(6px); }
.button-row { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 32px; }
.text-link { border: 0; background: transparent; display: inline-flex; gap: 20px; padding: 0 0 5px; border-bottom: 1px solid currentColor; font-size: .78rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; cursor: pointer; }
.text-link.light { color: #faf9f6; }
.link-button { padding: 0; border: 0; background: none; color: var(--brand); font-weight: 800; cursor: pointer; }

.site-header { position: fixed; z-index: 1000; inset: 0 0 auto; color: #faf9f6; transition: background .3s, box-shadow .3s, transform .3s; }
.site-header.scrolled { background: rgba(24,21,18,.94); box-shadow: 0 8px 35px rgba(0,0,0,.2); backdrop-filter: blur(15px); }
.nav-shell { width: var(--wrap); height: 88px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 25px; }
.brand { display: flex; align-items: center; gap: 12px; min-width: 215px; }
.brand img { width: 62px; height: 48px; object-fit: contain; }
.brand span { display: flex; flex-direction: column; line-height: 1.1; }
.brand strong { font-family: "Manrope"; font-size: .83rem; letter-spacing: .11em; }
.brand small { margin-top: 5px; opacity: .67; font-size: .54rem; letter-spacing: .1em; }
.desktop-nav { display: flex; align-items: center; gap: clamp(17px, 2.2vw, 34px); }
.desktop-nav a { position: relative; font-family: "Manrope"; font-size: .66rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.desktop-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -8px; height: 2px; background: var(--brand-bright); transition: right .25s; }
.desktop-nav a:hover::after, .desktop-nav a.active::after { right: 0; }
.header-actions { display: flex; align-items: center; gap: 10px; }
.icon-button, .menu-toggle { width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; background: rgba(0,0,0,.12); color: #faf9f6; display: grid; place-items: center; cursor: pointer; }
.icon-button svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; }
.theme-toggle .moon { display: none; }
html[data-theme="dark"] .theme-toggle .sun { display: none; }
html[data-theme="dark"] .theme-toggle .moon { display: block; }
.menu-toggle { display: none; position: relative; }
.menu-toggle span { position: absolute; width: 17px; height: 1.5px; background: currentColor; transition: .25s; }
.menu-toggle span:first-child { transform: translateY(-4px); }
.menu-toggle span:last-child { transform: translateY(4px); }
.menu-toggle.open span:first-child { transform: rotate(45deg); }
.menu-toggle.open span:last-child { transform: rotate(-45deg); }
.mobile-menu { position: absolute; top: 88px; left: 0; right: 0; height: calc(100svh - 88px); background: var(--navy); padding: 35px 22px; overflow: auto; }
.mobile-menu[hidden] { display: none; }
.mobile-menu nav { width: min(520px, 100%); margin: auto; display: grid; }
.mobile-menu a { display: flex; align-items: baseline; gap: 20px; padding: 17px 5px; border-bottom: 1px solid rgba(255,255,255,.12); font-family: "Manrope"; font-size: 1.55rem; font-weight: 700; }
.mobile-menu a span { color: var(--brand-bright); font-size: .68rem; letter-spacing: .12em; }

.hero { min-height: min(920px, 100svh); position: relative; display: flex; align-items: center; color: #faf9f6; overflow: hidden; background: #141310; }
.hero-media { position: absolute; inset: 0; background: url("assets/verified/servicio-domingo-hero-4k.jpg?v=4k-20260914") center 43%/cover no-repeat; transform: scale(1.04); animation: heroDrift 18s ease-in-out infinite alternate; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(20,18,15,.89) 0%, rgba(20,18,15,.68) 48%, rgba(20,18,15,.3) 100%), linear-gradient(0deg, rgba(13,12,11,.72) 0%, transparent 48%); }
.hero-content { position: relative; z-index: 1; padding-top: 90px; }
.hero-content h1 { max-width: 820px; margin-bottom: 25px; font-size: clamp(3.7rem, 8.1vw, 7rem); letter-spacing: -.065em; }
.hero-content h1 em { color: transparent; -webkit-text-stroke: 1.5px rgba(255,255,255,.8); font-style: normal; }
.hero-lead { max-width: 690px; font-size: clamp(1.1rem, 2vw, 1.38rem); line-height: 1.65; color: rgba(255,255,255,.84); }
.hero-facts { padding: 0; margin: 30px 0; list-style: none; display: flex; flex-wrap: wrap; gap: 28px; }
.hero-facts li { display: flex; align-items: center; gap: 10px; font-weight: 600; font-size: .95rem; }
.hero-facts svg { width: 20px; fill: none; stroke: var(--brand-bright); stroke-width: 1.7; }
.hero-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.scroll-cue { position: absolute; z-index: 2; right: 40px; bottom: 35px; display: flex; align-items: center; gap: 14px; color: rgba(255,255,255,.7); writing-mode: vertical-rl; font-size: .63rem; letter-spacing: .16em; text-transform: uppercase; }
.scroll-cue i { display: block; width: 1px; height: 55px; background: rgba(255,255,255,.4); position: relative; overflow: hidden; }
.scroll-cue i::after { content: ""; position: absolute; inset: -100% 0 auto; height: 100%; background: #faf9f6; animation: scrollLine 2s infinite; }
@keyframes heroDrift { to { transform: scale(1.1) translate3d(-1.2%, -1%, 0); } }
@keyframes scrollLine { to { transform: translateY(200%); } }

.service-bar { background: #302a24; color: #faf9f6; border-top: 1px solid rgba(255,255,255,.08); }
.service-grid { min-height: 82px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 30px; }
.service-grid > div:first-child { display: grid; grid-template-columns: auto 1fr; align-items: center; column-gap: 10px; }
.service-grid p { margin: 0; color: #bbb1a5; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.service-grid > div strong { grid-column: 2; font-size: .86rem; }
.live-dot { grid-row: 1 / span 2; width: 9px; height: 9px; background: #d6ba77; border-radius: 50%; box-shadow: 0 0 0 6px rgba(214,186,119,.12); }
.countdown { display: flex; gap: 22px; }
.countdown span { text-align: center; display: grid; }
.countdown strong { font-family: "Manrope"; font-size: 1.2rem; }
.countdown small { font-size: .52rem; color: #a39a8f; letter-spacing: .1em; text-transform: uppercase; }
.service-grid > a { justify-self: end; }

.split { display: grid; grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); gap: clamp(50px, 8vw, 110px); align-items: center; }
.image-card { margin: 0; position: relative; min-height: 590px; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.image-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.image-card figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 32px 35px 32px 52px; background: rgba(24,21,18,.87); color: #faf9f6; font-family: "Manrope"; font-size: 1.12rem; font-weight: 700; line-height: 1.5; border-left: 4px solid var(--brand-bright); }
.section-copy h2 { max-width: 780px; }
.pillars { margin-top: 42px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.pillar { min-height: 215px; padding: 24px 19px; background: var(--surface-2); border: 1px solid var(--line); transition: transform .25s, border-color .25s, background .25s; outline: 0; }
.pillar:not(.bible-card):hover, .pillar:not(.bible-card):focus, .pillar.active { transform: translateY(-8px); border-color: var(--brand-bright); background: var(--surface); box-shadow: 0 18px 40px rgba(28,27,24,.08); }
.pillar span { color: var(--brand); font-size: .66rem; font-weight: 800; }
.pillar h3 { margin: 42px 0 10px; font-size: 1rem; letter-spacing: -.025em; }
.pillar p { margin: 0; color: var(--ink-soft); font-size: .86rem; line-height: 1.55; }

.discipleship-band { min-height: 680px; position: relative; display: flex; align-items: center; overflow: hidden; color: #faf9f6; }
.band-media { position: absolute; inset: 0; background: url("assets/verified/servicio-domingo-hero-4k.jpg?v=4k-20260914") center 38%/cover; background-attachment: fixed; }
.band-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(20,18,15,.88), rgba(20,18,15,.32)); }
.band-content { position: relative; z-index: 1; }
.band-content h2 { max-width: 680px; font-size: clamp(3.3rem, 7vw, 6.8rem); }
.band-content > p:not(.eyebrow) { max-width: 580px; color: rgba(255,255,255,.77); font-size: 1.15rem; }
.band-content .text-link { margin-top: 22px; }

.calendar-strip { padding: 92px 0; background: var(--paper); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.calendar-head { display: grid; grid-template-columns: 1fr 1fr auto; gap: 55px; align-items: end; }
.calendar-head h2 { margin: 0; }
.calendar-head > p { margin: 0 0 8px; color: var(--ink-soft); }
.event-row { margin-top: 55px; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.event-row article { min-height: 225px; padding: 25px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 1fr auto; align-content: space-between; background: var(--surface); transition: background .25s, transform .25s; }
.event-row article:hover { background: var(--surface-2); transform: translateY(-4px); }
.event-row time { color: var(--brand); font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.event-row article > span { font-family: "Manrope"; font-weight: 800; }
.event-row h3 { grid-column: 1 / -1; margin: 45px 0 25px; }
.calendar-add { grid-column: 1 / -1; padding: 0; border: 0; background: transparent; text-align: left; color: var(--ink-soft); font-size: .74rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.calendar-add b { float: right; color: var(--brand); }

.dark-section { position: relative; background: var(--navy); color: #faf9f6; overflow: hidden; }
.dark-section::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 70% 15%, rgba(217,154,69,.17), transparent 35%), linear-gradient(rgba(28,27,24,.78), rgba(28,27,24,.92)), url("assets/verified/servicio-domingo-hero-4k.jpg?v=4k-20260914") center 46%/cover; opacity: .85; }
.dark-section > * { position: relative; }
.center-heading { max-width: 800px; text-align: center; }
.center-heading > p:last-child { max-width: 620px; margin: -8px auto 55px; color: var(--ink-soft); }
.dark-section .center-heading { color: #faf9f6; }
.mission-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.mission-card { --bg: none; position: relative; min-height: 520px; padding: 35px; display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; border: 1px solid rgba(255,255,255,.17); }
.mission-card::before { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(18,16,14,.96), rgba(18,16,14,.05)), var(--bg) center/cover; transition: transform .7s; }
.mission-card:hover::before { transform: scale(1.06); }
.mission-card > * { position: relative; z-index: 1; }
.mission-card > span { color: var(--brand-bright); font-size: .72rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.mission-card h3 { margin: 18px 0 14px; font-size: 2.25rem; color: #faf9f6; }
.mission-card p { color: rgba(255,255,255,.75); }
.mission-card .text-link { align-self: flex-start; margin-top: 20px; }

.steps { background: var(--surface); }
.step-grid { display: grid; grid-template-columns: repeat(5, 1fr); }
.step-card { min-height: 430px; padding: 27px 20px; border: 1px solid var(--line); background: var(--surface); display: flex; flex-direction: column; transition: transform .3s, box-shadow .3s, border-color .3s; }
.step-card + .step-card { border-left: 0; }
.step-card:hover { transform: translateY(-12px); border-color: var(--brand-bright); box-shadow: var(--shadow); z-index: 1; }
.step-card > span { width: 46px; height: 46px; display: grid; place-items: center; border: 1px solid var(--brand); border-radius: 50%; color: var(--brand); font-size: .72rem; font-weight: 800; }
.step-card i { margin-top: 45px; color: var(--brand); font-style: normal; font-size: 1.6rem; }
.step-card h3 { margin: 22px 0 10px; }
.step-card p { color: var(--ink-soft); font-size: .88rem; }
.step-card > a, .step-card .link-button { margin-top: auto; align-self: flex-start; color: var(--brand); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

.counseling { background: var(--paper); }
.check-list { margin: 30px 0; padding: 0; list-style: none; display: grid; gap: 14px; }
.check-list li { position: relative; padding-left: 32px; font-weight: 600; }
.check-list li::before { content: "✓"; position: absolute; left: 0; color: var(--brand); }
.portrait-stack { margin: 0; position: relative; min-height: 620px; }
.portrait-stack img { position: absolute; right: 0; top: 0; width: 88%; height: 84%; object-fit: cover; border-radius: var(--radius); box-shadow: var(--shadow); }
.portrait-stack blockquote { position: absolute; left: 0; bottom: 0; width: 70%; margin: 0; padding: 35px; background: var(--brand-deep); color: #faf9f6; font-family: "Manrope"; font-size: 1.25rem; font-weight: 600; line-height: 1.45; }
.portrait-stack cite { display: block; margin-top: 18px; color: #ead0a4; font-family: "DM Sans"; font-size: .75rem; font-style: normal; letter-spacing: .12em; text-transform: uppercase; }

.giving { padding: 45px 0; background: linear-gradient(135deg, #7a5234, #49362a); color: #faf9f6; }
.giving-card { display: grid; grid-template-columns: 1.2fr .8fr; gap: 70px; align-items: center; }
.giving-card h2 { margin-bottom: 15px; }
.giving-card p { max-width: 650px; color: rgba(255,255,255,.78); }
.giving-action { padding-left: 55px; border-left: 1px solid rgba(255,255,255,.24); display: grid; gap: 12px; }
.giving-action > span, .giving-action > small { color: rgba(255,255,255,.63); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; }

.media-heading { display: grid; grid-template-columns: 1.2fr .8fr; gap: 70px; align-items: end; }
.media-heading > p { color: var(--ink-soft); font-size: 1.08rem; }
.video-shell { margin-top: 45px; background: var(--navy); color: #faf9f6; box-shadow: var(--shadow); }
.video-shell iframe { width: 100%; aspect-ratio: 16 / 8.3; display: block; border: 0; background: #000; }
.video-meta { padding: 22px 28px; display: grid; grid-template-columns: auto 1fr auto; gap: 20px; align-items: center; }
.video-meta span { color: var(--brand-bright); font-size: .65rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.video-meta strong { font-family: "Manrope"; }
.video-meta a { font-size: .75rem; color: rgba(255,255,255,.72); }
.latest-transmissions-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.media-section .media-heading { display:block; margin-bottom:clamp(28px,3vw,42px); }
.latest-transmissions-grid .video-shell { min-width:0; margin-top:0; overflow:hidden; border-radius:24px; }
.latest-transmissions-grid .video-shell iframe { aspect-ratio:16/9; }
.latest-transmissions-grid .video-meta { grid-template-columns:auto minmax(0,1fr) auto; }
.latest-transmissions-grid .video-meta strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.transmission-period { padding:20px 24px; display:flex; align-items:center; gap:14px; background:linear-gradient(110deg,#9d5c22,#d39138); color:#fff; }
.transmission-period.evening { background:linear-gradient(110deg,#473247,#795064); }
.transmission-period img { width:38px; height:38px; filter:brightness(0) invert(1); }
.transmission-period span { display:grid; gap:2px; }
.transmission-period small { color:rgba(255,255,255,.76); font-size:.62rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.transmission-period strong { font-size:1.12rem; letter-spacing:.035em; text-transform:uppercase; }

.visit { min-height: 760px; position: relative; display: grid; grid-template-columns: 1.15fr .85fr; background: var(--navy); }
.visit-map iframe { width: 100%; height: 100%; min-height: 760px; border: 0; filter: saturate(.65) contrast(1.05); }
html[data-theme="dark"] .visit-map iframe { filter: saturate(.45) invert(.9) hue-rotate(165deg) brightness(.75); }
.visit-panel { padding: clamp(60px, 8vw, 110px); color: #faf9f6; display: flex; flex-direction: column; justify-content: center; background: linear-gradient(145deg, #29231e, #171512); }
.visit-panel h2 { font-size: clamp(3rem, 5vw, 5rem); }
.visit-panel > p:not(.eyebrow) { color: rgba(255,255,255,.72); }
.visit-panel dl { margin: 28px 0; }
.visit-panel dl div { padding: 18px 0; border-top: 1px solid rgba(255,255,255,.14); }
.visit-panel dt { color: var(--brand-bright); font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.visit-panel dd { margin: 7px 0 0; color: rgba(255,255,255,.82); }

.site-footer { padding: 70px 0 25px; background: #0d0c0b; color: #faf9f6; }
.footer-top { display: grid; grid-template-columns: 230px 1fr; align-items: center; gap: 50px; padding-bottom: 40px; border-bottom: 1px solid rgba(255,255,255,.12); }
.footer-logo img { width: 155px; height: 95px; object-fit: contain; }
.footer-top nav { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 28px; }
.footer-top nav a { font-size: .67rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.footer-bottom { padding: 45px 0; display: grid; grid-template-columns: 1fr auto auto; gap: 60px; align-items: center; }
.footer-bottom p { margin: 7px 0 0; color: #898177; max-width: 420px; }
.footer-contact { min-width:230px; display:grid; gap:10px; align-items:start; font-size:.85rem; color:#c0b6aa; }
.socials { display: flex; gap: 8px; }
.socials a { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.15); border-radius: 50%; color: var(--brand-bright); font-weight: 800; }
.legal { padding-top: 22px; border-top: 1px solid rgba(255,255,255,.08); display: flex; justify-content: space-between; color: #625e56; font-size: .7rem; }

.whatsapp-float { position: fixed; z-index: 900; right: 24px; bottom: 24px; width: 58px; height: 58px; border-radius: 50%; display: grid; place-items: center; background: #20b875; color: #faf9f6; box-shadow: 0 12px 35px rgba(0,0,0,.25); transition: transform .25s; }
.whatsapp-float:hover { transform: scale(1.08) translateY(-3px); }
.whatsapp-float svg { width: 30px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }

.modal { width: min(680px, calc(100% - 30px)); max-height: min(84vh, 760px); padding: clamp(35px, 6vw, 60px); border: 0; border-radius: 14px; background: var(--surface); color: var(--ink); box-shadow: 0 40px 120px rgba(0,0,0,.45); overflow: auto; }
.modal::backdrop { background: rgba(13,12,11,.8); backdrop-filter: blur(8px); }
.modal h2 { font-size: clamp(2.25rem, 5vw, 4rem); }
.modal-close { position: sticky; z-index: 2; float: right; top: 0; margin: -28px -28px 0 0; width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--line); background: var(--surface-2); color: var(--ink); font-size: 1.6rem; line-height: 1; cursor: pointer; }
.form-modal { width: min(720px, calc(100% - 30px)); }
.contact-form { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.contact-form label { display: grid; gap: 7px; color: var(--ink-soft); font-size: .78rem; font-weight: 700; }
.contact-form label:nth-of-type(n+3), .contact-form button, .contact-form small { grid-column: 1 / -1; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; border: 1px solid var(--line); background: var(--paper); color: var(--ink); padding: 13px 15px; border-radius: 3px; outline: none; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(138,90,59,.12); }
.contact-form small { color: var(--ink-soft); }
.toast { position: fixed; z-index: 1200; left: 50%; bottom: 25px; transform: translate(-50%, 30px); padding: 12px 18px; background: var(--navy); color: #faf9f6; border-radius: 6px; opacity: 0; pointer-events: none; transition: .3s; box-shadow: var(--shadow); }
.toast.show { opacity: 1; transform: translate(-50%, 0); }

.reveal { opacity: 0; transform: translateY(34px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.65,.25,1); }
.reveal.visible { opacity: 1; transform: none; }
.delay-1 { transition-delay: .1s; } .delay-2 { transition-delay: .2s; } .delay-3 { transition-delay: .3s; } .delay-4 { transition-delay: .4s; }

@media (max-width: 1100px) {
  .desktop-nav { gap: 15px; }
  .desktop-nav a { font-size: .59rem; }
  .brand span { display: none; }
  .brand { min-width: auto; }
  .step-grid { grid-template-columns: repeat(3, 1fr); gap: 12px; }
  .step-card + .step-card { border-left: 1px solid var(--line); }
  .calendar-head { grid-template-columns: 1fr 1fr; }
  .calendar-head .button { justify-self: start; }
  .event-row { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 850px) {
  :root { --wrap: min(100% - 32px, 680px); }
  .desktop-nav { display: none; }
  .menu-toggle { display: grid; }
  .nav-shell { height: 76px; }
  .mobile-menu { top: 76px; height: calc(100svh - 76px); }
  .hero { min-height: 820px; }
  .hero-content { padding-top: 100px; }
  .service-grid { padding: 22px 0; grid-template-columns: 1fr auto; }
  .countdown { grid-column: 1 / -1; grid-row: 2; justify-content: center; padding-top: 10px; border-top: 1px solid rgba(255,255,255,.1); }
  .service-grid > a { grid-column: 2; grid-row: 1; }
  .split, .giving-card, .media-heading { grid-template-columns: 1fr; }
  .image-card { min-height: 500px; }
  .pillars { grid-template-columns: 1fr; }
  .pillar { min-height: auto; }
  .pillar h3 { margin-top: 15px; }
  .band-media { background-attachment: scroll; }
  .calendar-head { grid-template-columns: 1fr; gap: 20px; align-items: start; }
  .mission-grid { grid-template-columns: 1fr; }
  .mission-card { min-height: 440px; }
  .step-grid { grid-template-columns: repeat(2, 1fr); }
  .giving-action { padding: 35px 0 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.24); }
  .video-shell iframe { aspect-ratio: 16 / 10; }
  .video-meta { grid-template-columns: 1fr; }
  .latest-transmissions-grid { grid-template-columns:1fr; }
  .latest-transmissions-grid .video-meta { grid-template-columns:auto minmax(0,1fr) auto; }
  .visit { grid-template-columns: 1fr; }
  .visit-map iframe { min-height: 480px; }
  .visit-panel { padding-inline: max(24px, calc((100vw - 680px) / 2)); }
  .footer-top, .footer-bottom { grid-template-columns: 1fr; }
  .footer-top nav { justify-content: flex-start; }
  .footer-bottom { gap: 25px; }
}

@media (max-width: 560px) {
  :root { --wrap: calc(100% - 26px); }
  .section { padding-block: 75px; }
  h2 { font-size: clamp(2.35rem, 12vw, 3.5rem); }
  .brand img { width: 55px; }
  .header-actions { gap: 6px; }
  .hero { min-height: 780px; align-items: flex-end; }
  .hero-content { padding: 125px 0 90px; }
  .hero-content h1 { font-size: clamp(3.3rem, 16vw, 5rem); }
  .hero-lead { font-size: 1rem; }
  .hero-facts { display: grid; gap: 12px; }
  .hero-buttons .button { flex: 1 1 100%; }
  .scroll-cue { display: none; }
  .service-grid { grid-template-columns: 1fr; }
  .service-grid > a { display: none; }
  .countdown { grid-column: 1; }
  .countdown { gap: 17px; }
  .image-card { min-height: 430px; }
  .image-card figcaption { padding: 24px; font-size: .95rem; }
  .discipleship-band { min-height: 620px; }
  .event-row { grid-template-columns: 1fr; }
  .mission-card { min-height: 410px; padding: 27px; }
  .mission-card h3 { font-size: 1.9rem; }
  .step-grid { grid-template-columns: 1fr; }
  .step-card { min-height: 330px; }
  .portrait-stack { min-height: 540px; }
  .portrait-stack img { width: 100%; height: 75%; }
  .portrait-stack blockquote { width: 88%; padding: 25px; font-size: 1rem; }
  .video-shell { width: 100%; }
  .visit-map iframe { min-height: 390px; }
  .footer-top { grid-template-columns: 1fr; }
  .footer-top nav { display: grid; grid-template-columns: repeat(2, 1fr); }
  .legal { gap: 12px; flex-direction: column; }
  .contact-form { grid-template-columns: 1fr; }
  .contact-form label { grid-column: 1; }
  .modal { padding: 35px 24px; }
  .modal-close { margin: -20px -10px 0 0; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
  .band-media { background-attachment: scroll; }
}

/* Navegación completa: logo protagonista al inicio y cabecera compacta al desplazarse. */
body { padding-bottom: 166px; }
[id] { scroll-margin-top: 96px; }
.site-header { min-height: 172px; }
.nav-shell { position: relative; height: 172px; transition: height .42s cubic-bezier(.2,.7,.2,1); }
.brand { position: absolute; z-index: 2; left: 50%; top: 8px; min-width: 0; transform: translateX(-50%); transition: left .42s, top .42s, transform .42s; }
.brand img { width: 168px; height: 112px; transition: width .42s, height .42s; filter: drop-shadow(0 8px 20px rgba(0,0,0,.3)); }
.brand span { display: none; }
.desktop-nav { position: absolute; left: 50%; bottom: 20px; width: max-content; transform: translateX(-50%); gap: clamp(14px, 1.75vw, 28px); }
.nav-item { position: relative; }
.nav-item > a { display: block; padding: 8px 0; }
.submenu { position: absolute; z-index: 30; top: calc(100% + 10px); left: 50%; width: max-content; min-width: 220px; padding: 10px; border: 1px solid rgba(255,255,255,.12); background: rgba(24,21,18,.98); box-shadow: 0 24px 55px rgba(0,0,0,.3); transform: translate(-50%, 10px); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .2s, transform .2s, visibility .2s; }
.submenu.align-right { left: auto; right: 0; transform: translate(0, 10px); }
.nav-item:hover .submenu, .nav-item:focus-within .submenu { opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%, 0); }
.nav-item:hover .submenu.align-right, .nav-item:focus-within .submenu.align-right { transform: translate(0, 0); }
.submenu a { display: block; padding: 10px 13px; color: rgba(255,255,255,.74); font-size: .64rem; letter-spacing: .08em; white-space: nowrap; }
.submenu a:hover, .submenu a:focus { color: #faf9f6; background: rgba(217,154,69,.12); }
.submenu a::after { display: none; }
.header-actions { position: absolute; right: 0; top: 25px; transition: top .42s; }
.site-header.scrolled { min-height: 76px; }
.site-header.scrolled .nav-shell { height: 76px; }
.site-header.scrolled .brand { left: 0; top: 8px; transform: none; }
.site-header.scrolled .brand img { width: 76px; height: 58px; }
.site-header.scrolled .desktop-nav { bottom: 21px; }
.site-header.scrolled .header-actions { top: 17px; }
.hero-content { padding-top: 205px; }

/* Barra persistente del siguiente servicio. */
.service-bar { position: fixed; z-index: 950; left: 0; right: 0; bottom: 0; background: rgba(48,42,36,.97); box-shadow: 0 -12px 36px rgba(0,0,0,.18); backdrop-filter: blur(16px); }
.service-grid { min-height: 92px; grid-template-columns: minmax(220px,1fr) auto minmax(310px,1fr); }
.service-title { display: grid; grid-template-columns: auto 1fr; align-items: center; column-gap: 10px; }
.service-title strong { grid-column: 2; }
.service-title #next-service-time { grid-column: 2; color: #d8cdbf; font-size: .74rem; font-weight: 700; letter-spacing: .04em; }
.service-actions { justify-self: end; display: flex !important; grid-template-columns: none !important; gap: 10px; }
.service-actions .button { white-space: nowrap; }
.service-actions .live-button[hidden] { display:none !important; }
.service-bar .outline-button { border-color: rgba(255,255,255,.66); background: rgba(255,255,255,.08) !important; color: #faf9f6 !important; }
.service-bar .outline-button:hover, .service-bar .outline-button:focus-visible { background: #faf9f6 !important; color: #1c1b18 !important; border-color: #faf9f6; }
.service-bar .schedule-button { min-width: 154px; background: #efc578; color: #241b15; }
.service-bar .schedule-button:hover, .service-bar .schedule-button:focus-visible { background: #fff0cb; color: #241b15; }
.service-bar.is-live { background:linear-gradient(105deg,rgba(105,25,29,.98),rgba(49,29,26,.98)); box-shadow:0 -14px 42px rgba(94,21,26,.28); }
.service-bar.is-live .service-grid { min-height:160px; padding-block:16px; grid-template-columns:1fr; gap:12px; }
.service-bar.is-live .countdown { display:none; }
.service-bar.is-live .service-title { grid-column:1; grid-row:1; justify-self:center; grid-template-columns:auto minmax(0,1fr); row-gap:5px; }
.service-bar.is-live .live-dot { grid-row:1; width:12px; height:12px; background:#ff4e57; box-shadow:0 0 0 8px rgba(255,78,87,.16); animation:dockLivePulse 1.45s ease-in-out infinite; }
.service-bar.is-live .service-title p { grid-column:2; color:#ffc7a5; font-size:.78rem; font-weight:900; }
.service-bar.is-live .service-title strong { display:block; grid-column:2; max-width:760px; overflow:hidden; color:#fff; font-size:clamp(1.05rem,2vw,1.48rem); line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.service-bar.is-live .service-title #next-service-time { grid-column:2; color:rgba(255,255,255,.76); font-size:.82rem; font-weight:600; letter-spacing:0; }
.service-bar.is-live .service-actions { grid-column:1; grid-row:2; justify-self:center; }
.service-bar.is-live .live-button { min-width:150px; border-color:#fff0e8; background:#fff0e8 !important; color:#69191d !important; }
.service-bar.is-live .live-button:hover,.service-bar.is-live .live-button:focus-visible { background:#fff !important; color:#69191d !important; }
.service-bar.is-live .schedule-button { min-width:190px; border:1px solid rgba(255,255,255,.62); background:transparent; color:#fff; }
.service-bar.is-live .schedule-button:hover,.service-bar.is-live .schedule-button:focus-visible { border-color:#fff; background:rgba(255,255,255,.12); color:#fff; }
.service-bar.is-special { background:linear-gradient(108deg,rgba(16,31,50,.99),rgba(51,40,35,.99)); box-shadow:0 -14px 42px rgba(40,35,28,.28); }
.service-bar.is-in-progress { background:linear-gradient(108deg,rgba(18,92,57,.99),rgba(29,72,49,.99) 52%,rgba(126,39,45,.98)); box-shadow:0 -16px 46px rgba(18,92,57,.34); }
.service-bar.is-in-progress::before { content:""; position:absolute; top:0; left:0; right:0; height:5px; background:linear-gradient(90deg,#1cb66d,#f4d27e,#c63e49); }
.service-bar.is-in-progress .service-title p { color:#fff0b4; font-weight:900; }
.service-bar.is-in-progress .live-dot { background:#67e39a; box-shadow:0 0 0 8px rgba(103,227,154,.16); animation:dockLivePulse 1.2s ease-in-out infinite; }
.service-bar.is-in-progress .countdown { display:none; }
.service-bar.is-in-progress .schedule-button { background:#fffdf8; color:#175336; }
.service-bar.is-special::before { content:""; position:absolute; top:0; left:0; right:0; height:4px; background:linear-gradient(90deg,#b98a45,#fff0c7 48%,#b98a45); }
.service-bar.is-special .service-title p { color:#f5d69a; font-weight:900; }
.service-bar.is-special .live-dot { background:#f2c76f; box-shadow:0 0 0 7px rgba(242,199,111,.13); }
.service-bar.is-special .schedule-button { border:1px solid rgba(255,245,220,.76); background:#efc578; color:#241b15; box-shadow:0 8px 24px rgba(0,0,0,.16); }
.service-bar.is-special .schedule-button:hover,.service-bar.is-special .schedule-button:focus-visible { background:#fff0cb; color:#241b15; box-shadow:0 12px 28px rgba(0,0,0,.2); }
@keyframes dockLivePulse { 50%{transform:scale(1.18);box-shadow:0 0 0 13px rgba(255,78,87,.05)} }
.whatsapp-float { z-index: 960; bottom: 112px; }

/* Aplicaciones y servicios conectados con sus marcas reales. */
.connected-apps { margin-top: 75px; padding-top: 35px; border-top: 1px solid var(--line); }
.connected-apps > p { margin-bottom: 22px; color: var(--ink-soft); font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-align: center; text-transform: uppercase; }
.connected-apps > div { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.connected-apps a { min-width: 145px; padding: 14px 17px; display: flex; align-items: center; gap: 11px; border: 1px solid var(--line); background: var(--surface-2); font-size: .77rem; font-weight: 700; transition: transform .22s, background .22s; }
.connected-apps a:hover { transform: translateY(-4px); background: var(--surface); }
.connected-apps img, .socials img, .video-meta img, .button img { width: 24px; height: 24px; object-fit: contain; }

/* Subsecciones institucionales. */
.about-detail { background: var(--paper); }
.identity-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
.identity-grid article { min-height: 320px; padding: 30px; border: 1px solid var(--line); background: var(--surface); }
.identity-grid span, .ministry-grid span, .counseling-process span { color: var(--brand); font-size: .68rem; font-weight: 800; letter-spacing: .13em; }
.identity-grid h3 { margin-top: 78px; font-size: 1.45rem; }
.identity-grid p, .ministry-grid p, .counseling-process p { color: var(--ink-soft); font-size: .9rem; }
.doctrine-section { background: var(--surface); }
.doctrine-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(50px,8vw,110px); align-items: start; }
.doctrine-list { border-top: 1px solid var(--line); }
.doctrine-list details { border-bottom: 1px solid var(--line); }
.doctrine-list summary { position: relative; padding: 22px 42px 22px 0; cursor: pointer; list-style: none; font-family: "Manrope"; font-size: 1.12rem; font-weight: 800; }
.doctrine-list summary::-webkit-details-marker { display:none; }
.doctrine-list summary::after { content: "+"; position:absolute; right: 4px; color: var(--brand); font-size: 1.5rem; }
.doctrine-list details[open] summary::after { content: "−"; }
.doctrine-list p { padding: 0 42px 22px 0; color: var(--ink-soft); }
.missions-section { padding: 55px 0; background: var(--navy); color: #faf9f6; }
.missions-card { min-height: 410px; padding: clamp(36px,6vw,75px); display: grid; grid-template-columns: 1fr auto; gap: 60px; align-items: end; background: linear-gradient(90deg,rgba(13,12,11,.94),rgba(13,12,11,.43)),url("assets/verified/servicio-domingo-hero-4k.jpg?v=4k-20260914") center/cover; }
.missions-card h2 { max-width: 760px; }
.missions-card p:not(.eyebrow) { max-width: 710px; color: rgba(255,255,255,.75); }

/* Registro y vida de iglesia. */
.registration-section { padding: clamp(56px,6vw,88px) 0; background: linear-gradient(135deg,#65472f,#2d241d); color:#faf9f6; }
.registration-layout { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(45px,8vw,100px); align-items:start; }
.registration-copy h2 { font-size:clamp(3rem,6vw,5.5rem); }
.registration-copy > p:not(.eyebrow), .registration-copy li { color:rgba(255,255,255,.76); }
.registration-copy ul { padding-left:20px; }
.registration-form { padding:clamp(26px,4vw,42px); background:#faf9f6; color:#292622; box-shadow:0 30px 80px rgba(0,0,0,.25); }
.registration-form label { color:#5f5a52; }
.registration-form label:nth-of-type(n+3) { grid-column:1/-1; }
.registration-form fieldset { grid-column:1/-1; padding:18px; border:1px solid rgba(41,38,34,.16); display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.registration-form legend { padding:0 8px; font-weight:800; }
.registration-form fieldset label { display:flex; grid-column:auto; align-items:flex-start; gap:9px; font-weight:500; }
.registration-form fieldset input { width:auto; margin-top:5px; }
.registration-form .button { background:var(--brand); color:var(--on-brand); }
.registration-form small { color:#746e63; }
.ministries { background:var(--surface); }
.ministry-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.ministry-grid article { min-height:280px; padding:30px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.ministry-grid h3 { margin:58px 0 12px; font-size:1.4rem; }
.ministry-grid a { color:var(--brand); font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }

/* Consejería, donativos y biblioteca. */
.counseling-process { margin-top:80px; display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.counseling-process article { padding:28px; border:1px solid var(--line); background:var(--surface); }
.counseling-process h3 { margin:38px 0 10px; }
.giving { padding:80px 0; }
.giving-methods { display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; }
.giving-methods span { padding:8px 12px; border:1px solid rgba(255,255,255,.3); font-size:.68rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.giving-action.contact-form { grid-template-columns:1fr 1fr; }
.giving-action.contact-form label { color:rgba(255,255,255,.76); }
.giving-action.contact-form label:nth-of-type(3), .giving-action.contact-form button, .giving-action.contact-form small { grid-column:1/-1; }
.giving-action.contact-form input { background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.3); color:#faf9f6; }
.video-meta img { margin-right:4px; }
.socials a { background:#faf9f6; border-color:transparent; }
.socials img { width:20px; height:20px; }
.whatsapp-float img { width:30px; height:30px; object-fit:contain; }

/* Páginas interiores: cada sección principal vive en su propia URL. */
.internal-page .site-header { background:linear-gradient(180deg,rgba(13,12,11,.82),transparent); }
.page-hero { --page-image:url("assets/verified/servicio-domingo-hero-4k.jpg?v=4k-20260914"); min-height:590px; position:relative; display:flex; align-items:flex-end; padding:225px 0 95px; color:#faf9f6; overflow:hidden; background:#141310; }
.compact-page-hero { min-height:440px; padding:175px 0 65px; }
.page-hero::before { content:""; position:absolute; inset:0; background:var(--page-image) center/cover; transform:scale(1.025); }
.page-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(13,12,11,.94),rgba(13,12,11,.52)),linear-gradient(0deg,rgba(13,12,11,.78),transparent 55%); }
.page-hero-content { position:relative; z-index:1; }
.page-hero h1 { max-width:900px; margin:0; font-size:clamp(3.8rem,8vw,7.4rem); letter-spacing:-.065em; }
.page-hero p:not(.eyebrow) { max-width:690px; margin:25px 0 0; color:rgba(255,255,255,.78); font-size:1.15rem; }
.page-breadcrumb { display:flex; gap:10px; margin-bottom:25px; color:rgba(255,255,255,.62); font-size:.7rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.page-breadcrumb a:hover { color:#faf9f6; }
.page-intro { padding:clamp(56px,6vw,88px) 0; background:var(--surface); }
.page-intro-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(45px,8vw,110px); align-items:start; }
.page-intro-grid > p { color:var(--ink-soft); font-size:clamp(1.1rem,2vw,1.45rem); line-height:1.75; }
.page-section { padding:clamp(56px,6vw,88px) 0; }
.page-section.alt { background:var(--surface); }
.page-section.dark { background:var(--navy); color:#faf9f6; }
.page-section.dark p { color:rgba(255,255,255,.72); }
.page-section-header { max-width:760px; margin-bottom:50px; }
.page-section-header p:not(.eyebrow) { color:var(--ink-soft); font-size:1.08rem; }
.page-section.dark .page-section-header p:not(.eyebrow) { color:rgba(255,255,255,.7); }
.detail-card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.detail-card { min-height:290px; padding:30px; display:flex; flex-direction:column; border:1px solid var(--line); background:var(--surface); }
.detail-card .number { color:var(--brand); font-size:.68rem; font-weight:800; letter-spacing:.13em; }
.detail-card h3 { margin:65px 0 12px; font-size:1.4rem; }
.detail-card p { color:var(--ink-soft); }
.detail-card a { margin-top:auto; color:var(--brand); font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.page-section.dark .detail-card { border-color:rgba(255,255,255,.14); background:rgba(255,255,255,.04); }
.page-section.dark .detail-card p { color:rgba(255,255,255,.66); }
.page-section.dark .detail-card a { color:var(--brand-bright); }
.internal-cta { padding:55px 0; background:var(--brand-deep); color:#faf9f6; }
.internal-cta .wrap { display:flex; align-items:center; justify-content:space-between; gap:35px; }
.internal-cta h2 { margin:0; font-size:clamp(2rem,4vw,3.7rem); }
.internal-cta p { margin:8px 0 0; color:rgba(255,255,255,.72); }
.map-directions { display:inline-flex; align-items:center; gap:10px; }
.map-directions img { width:24px; height:24px; }
.standalone-map { min-height:520px; }
.standalone-map iframe { width:100%; height:520px; border:0; }

@media (max-width:850px) {
  .page-hero { min-height:560px; padding:205px 0 85px; }
  .compact-page-hero { min-height:410px; padding:165px 0 58px; }
  .page-intro-grid { grid-template-columns:1fr; }
  .detail-card-grid { grid-template-columns:repeat(2,1fr); }
  .internal-cta .wrap { align-items:flex-start; flex-direction:column; }
}

@media (max-width:560px) {
  .page-hero { min-height:525px; padding:190px 0 70px; }
  .page-hero h1 { font-size:clamp(3.3rem,15vw,5rem); }
  .detail-card-grid { grid-template-columns:1fr; }
}

@media (max-width: 1100px) {
  .desktop-nav { gap:12px; }
  .desktop-nav a { font-size:.57rem; }
  .identity-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 850px) {
  body { padding-bottom:176px; }
  .site-header, .site-header:not(.scrolled) { min-height:150px; }
  .nav-shell, .site-header:not(.scrolled) .nav-shell { height:150px; }
  .brand, .site-header:not(.scrolled) .brand { left:50%; top:8px; transform:translateX(-50%); }
  .brand img, .site-header:not(.scrolled) .brand img { width:154px; height:118px; }
  .header-actions, .site-header:not(.scrolled) .header-actions { right:0; top:25px; }
  .site-header.scrolled { min-height:74px; }
  .site-header.scrolled .nav-shell { height:74px; }
  .site-header.scrolled .brand { left:0; top:7px; transform:none; }
  .site-header.scrolled .brand img { width:72px; height:58px; }
  .site-header.scrolled .header-actions { top:16px; }
  .mobile-menu { top:150px; height:calc(100svh - 150px); }
  .site-header.scrolled .mobile-menu { top:74px; height:calc(100svh - 74px); }
  .mobile-menu nav { gap:0; }
  .mobile-menu details { border-bottom:1px solid rgba(255,255,255,.12); }
  .mobile-menu summary { display:flex; align-items:baseline; gap:20px; padding:17px 5px; list-style:none; cursor:pointer; font-family:"Manrope"; font-size:1.55rem; font-weight:700; }
  .mobile-menu summary::-webkit-details-marker { display:none; }
  .mobile-menu summary::after { content:"+"; margin-left:auto; color:var(--brand-bright); }
  .mobile-menu details[open] summary::after { content:"−"; }
  .mobile-menu summary span { color:var(--brand-bright); font-size:.68rem; letter-spacing:.12em; }
  .mobile-menu details div { padding:0 0 12px 42px; display:grid; }
  .mobile-menu details div a { padding:9px 5px; border:0; color:rgba(255,255,255,.7); font-size:.92rem; }
  .hero-content { padding-top:210px; }
  .service-grid { min-height:156px; padding:12px 0; grid-template-columns:1fr auto; gap:10px 20px; }
  .service-title { grid-column:1/-1; justify-self:center; text-align:center; }
  .countdown { grid-column:1; grid-row:2; padding:0; border:0; }
  .service-actions { grid-column:2; grid-row:2; }
  .service-actions .button { min-height:38px; padding-inline:14px; font-size:.63rem; }
  .whatsapp-float { bottom:176px; }
  .doctrine-layout, .registration-layout { grid-template-columns:1fr; }
  .missions-card { grid-template-columns:1fr; align-items:end; }
  .ministry-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 560px) {
  body { padding-bottom:204px; }
  .hero-content { padding-top:205px; }
  .connected-apps a { min-width:calc(50% - 7px); }
  .identity-grid, .ministry-grid, .counseling-process { grid-template-columns:1fr; }
  .registration-form fieldset { grid-template-columns:1fr; }
  .service-grid { min-height:172px; grid-template-columns:1fr; gap:8px; }
  .service-title { grid-column:1; }
  .service-title strong { display:block; }
  .service-title #next-service-time { display:block; }
  .service-bar.is-live .service-grid { min-height:190px; grid-template-columns:1fr; gap:12px; }
  .service-bar.is-live .service-title { justify-self:stretch; padding-inline:8px; text-align:left; }
  .service-bar.is-live .service-title strong { white-space:normal; }
  .service-bar.is-live .service-actions { grid-column:1; grid-row:2; justify-self:center; padding-left:0; }
  .service-bar.is-live .live-button { min-width:0; }
  .service-bar.is-live .schedule-button { min-width:0; }
  .countdown { grid-column:1; grid-row:2; justify-self:center; }
  .service-actions { grid-column:1; grid-row:3; justify-self:center; }
  .service-actions .button { display:inline-flex; }
  .whatsapp-float { right:16px; bottom:190px; }
  .giving-action.contact-form { grid-template-columns:1fr; padding-left:0; }
  .giving-action.contact-form label { grid-column:1 !important; }
  .video-meta img { width:28px; }
}

/* Compact content added from confirmed church information. */
.compact-steps { grid-template-columns:repeat(3,minmax(0,1fr)); max-width:1050px; }
.pastoral-section { background:var(--surface,#faf9f6); }
.pastoral-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.pastor-card, .deacon-card { border:1px solid var(--line,#e5ded4); border-radius:22px; background:var(--card,#faf9f6); box-shadow:0 20px 50px rgba(28,27,24,.08); }
.pastor-card { padding:34px 28px 30px; }
.person-photo-frame { position:relative; width:min(100%,230px); aspect-ratio:1; margin:0 auto; overflow:hidden; border:5px solid color-mix(in srgb,var(--brand) 42%,var(--surface)); border-radius:50%; background:var(--surface-2); box-shadow:0 16px 38px rgba(28,27,24,.18); }
.person-photo { position:absolute; top:50%; left:50%; display:block; width:100%; max-width:none; height:auto; transform:translate(calc(-50% + var(--portrait-x,0%)),calc(-50% + var(--portrait-y,0%))) scale(var(--portrait-scale,1.3)); transform-origin:center; }
.pastor-copy { padding:24px 0 0; }
.pastor-copy h3 { margin:6px 0 16px; padding-bottom:14px; border-bottom:1px solid var(--line,#e5ded4); font-size:1.55rem; }
.pastor-copy p:not(.eyebrow) { color:var(--ink-soft); }
.pastor-copy p:last-child { margin-bottom:0; }
.deacons-section { background:var(--surface-2); }
.deacons-grid { display:grid; grid-template-columns:repeat(3,minmax(220px,300px)); justify-content:center; gap:28px; }
.deacon-card { padding:32px 28px 26px; text-align:center; background:var(--surface); }
.deacon-card .person-photo-frame { width:min(100%,210px); }
.deacon-card h3 { margin:22px 0 0; padding-bottom:14px; border-bottom:1px solid var(--line,#e5ded4); color:var(--ink); font-size:1.4rem; }
.doctrine-list small { display:block; margin-top:12px; color:var(--muted,#7b746a); font-weight:700; }
.counseling-agreement .doctrine-list { max-width:920px; }
.consent-check { display:grid !important; grid-template-columns:auto 1fr; align-items:start; gap:12px; }
.consent-check input { width:20px !important; height:20px; margin-top:2px; }
.consent-check span { font-size:.86rem; line-height:1.5; }

@media (max-width:850px) {
  .compact-steps { grid-template-columns:1fr; }
  .pastoral-grid { grid-template-columns:minmax(0,1fr); max-width:520px; }
  .deacons-grid { grid-template-columns:minmax(0,360px); }
}

/* Refinamiento de navegación: menús unidos al título y señales claras. */
.nav-item > a { display:flex; align-items:center; gap:6px; }
.nav-chevron { display:inline-block; font-size:.88rem; line-height:1; transition:transform .22s ease; }
.has-submenu:hover .nav-chevron, .has-submenu:focus-within .nav-chevron { transform:rotate(180deg); }
.submenu { top:100%; transform:translate(-50%,0); border-radius:0 0 12px 12px; }
.submenu.align-right { transform:none; }
.nav-item:hover .submenu, .nav-item:focus-within .submenu { transform:translate(-50%,0); }
.nav-item:hover .submenu.align-right, .nav-item:focus-within .submenu.align-right { transform:none; }

/* Tarjetas conectadas visualmente, con menos cajas blancas aisladas. */
.detail-card-grid { gap:18px; }
.detail-card { min-height:245px; padding:32px; border:0; border-top:3px solid var(--brand); border-radius:var(--radius); background:linear-gradient(145deg,var(--surface-2),color-mix(in srgb,var(--surface) 88%,var(--brand) 12%)); box-shadow:0 18px 45px rgba(28,27,24,.07); transition:transform .28s ease,box-shadow .28s ease; }
.detail-card:hover { transform:translateY(-7px); box-shadow:var(--shadow); }
.detail-card h3 { margin:18px 0 12px; }
.detail-card .number { display:block; margin-bottom:10px; }
.page-section.dark .detail-card { border-top-color:var(--brand-bright); background:linear-gradient(145deg,rgba(255,255,255,.09),rgba(255,255,255,.025)); }
.ministry-grid { gap:18px; border:0; }
.ministry-grid article { min-height:230px; padding:32px; border:0; border-radius:var(--radius); background:linear-gradient(145deg,var(--surface-2),color-mix(in srgb,var(--surface) 90%,var(--brand) 10%)); box-shadow:0 18px 45px rgba(28,27,24,.06); transition:transform .28s ease; }
.ministry-grid article:hover { transform:translateY(-7px); }
.ministry-grid h3 { margin:18px 0 12px; }
.step-grid { gap:18px; }
.step-card, .step-card + .step-card { min-height:310px; padding:34px; border:0; border-radius:var(--radius); background:linear-gradient(145deg,var(--surface-2),color-mix(in srgb,var(--surface) 90%,var(--brand) 10%)); box-shadow:0 18px 45px rgba(28,27,24,.06); }
.step-card i { margin-top:0; width:52px; height:52px; display:grid; place-items:center; border-radius:50%; background:color-mix(in srgb,var(--brand) 13%,transparent); }
.step-card h3 { margin-top:32px; }
.pillar { border-radius:18px; }
.pillar h3 { margin-top:16px; }
.identity-grid { gap:18px; }
.identity-grid article { min-height:245px; border:0; border-radius:var(--radius); background:linear-gradient(145deg,var(--surface-2),var(--surface)); box-shadow:0 16px 40px rgba(28,27,24,.06); }
.identity-grid h3 { margin-top:24px; }

/* Centro social: canales principales con identidad y contexto. */
.social-hub { margin-top:clamp(75px,9vw,125px); padding:clamp(34px,6vw,70px); border-radius:30px; background:linear-gradient(135deg,#2b241e,#171512); color:#faf9f6; overflow:hidden; box-shadow:0 30px 80px rgba(28,27,24,.2); }
.social-hub-heading { max-width:760px; }
.social-hub-heading h2 { margin-bottom:38px; font-size:clamp(2.4rem,5vw,4.7rem); }
.social-channel-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.social-channel { position:relative; min-height:142px; padding:24px; display:grid; grid-template-columns:48px 1fr auto; align-items:center; gap:18px; border:1px solid rgba(255,255,255,.12); border-radius:18px; background:rgba(255,255,255,.055); overflow:hidden; transition:transform .28s ease,border-color .28s ease,background .28s ease; }
.social-channel::before { content:""; position:absolute; inset:0 auto 0 0; width:4px; background:var(--channel); }
.social-channel:hover { transform:translateY(-5px); border-color:color-mix(in srgb,var(--channel) 65%,white); background:rgba(255,255,255,.095); }
.social-channel.facebook { --channel:#1877f2; }
.social-channel.instagram { --channel:#e1306c; }
.social-channel.youtube { --channel:#ff0033; }
.social-channel.whatsapp { --channel:#25d366; }
.social-channel img { width:42px; height:42px; object-fit:contain; }
.social-channel div { display:grid; gap:5px; }
.social-channel strong { font-family:"Manrope"; font-size:1.15rem; }
.social-channel span { color:rgba(255,255,255,.64); font-size:.84rem; }
.social-channel b { color:rgba(255,255,255,.78); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; }
.connected-utilities { margin-top:16px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.connected-utilities > a { padding:20px 22px; display:grid; grid-template-columns:34px 1fr auto; align-items:center; gap:16px; border:1px solid rgba(255,255,255,.12); border-radius:16px; transition:background .22s ease,transform .22s ease; }
.connected-utilities > a:hover { background:rgba(255,255,255,.07); transform:translateX(4px); }
.connected-utilities img { width:30px; height:30px; object-fit:contain; }
.connected-utilities span { display:grid; color:rgba(255,255,255,.62); font-size:.78rem; }
.connected-utilities strong { color:#faf9f6; font-family:"Manrope"; font-size:.98rem; }

/* Biblias doctrinales: cerradas en reposo y abiertas al explorar. */
.bible-pillars { grid-template-columns:1fr; gap:14px; }
.bible-card { min-height:0; padding:20px 22px; border-radius:20px; cursor:pointer; overflow:hidden; }
.bible-card-head { display:grid; grid-template-columns:48px minmax(0,1fr) auto; align-items:center; gap:15px; }
.bible-card-head h3 { margin:0; font-size:1.03rem; }
.bible-card-head small { color:var(--brand); font-size:.65rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.bible-icon { grid-column:1; grid-row:1; width:42px; height:42px; display:block; background:var(--brand); -webkit-mask:center/contain no-repeat; mask:center/contain no-repeat; transition:opacity .3s ease,transform .38s cubic-bezier(.2,.8,.2,1); }
.bible-closed { -webkit-mask-image:url("https://api.iconify.design/ph:book-bookmark.svg"); mask-image:url("https://api.iconify.design/ph:book-bookmark.svg"); }
.bible-open { opacity:0; transform:scale(.72) rotate(-7deg); -webkit-mask-image:url("https://api.iconify.design/ph:book-open-text.svg"); mask-image:url("https://api.iconify.design/ph:book-open-text.svg"); }
.bible-card-body { display:grid; grid-template-rows:0fr; opacity:0; transition:grid-template-rows .42s cubic-bezier(.2,.8,.2,1),opacity .28s ease; }
.bible-card-body > div { min-height:0; overflow:hidden; }
.bible-card-body p { margin:19px 0 13px; color:var(--ink-soft); }
.bible-card-body blockquote { margin:0; padding:15px 18px; border-left:3px solid var(--brand-bright); border-radius:0 12px 12px 0; background:color-mix(in srgb,var(--brand) 9%,transparent); color:var(--ink); font-size:.86rem; line-height:1.6; }
.bible-card-body blockquote strong, .bible-card-body blockquote span { display:block; }
.bible-card-body blockquote strong { margin-bottom:4px; color:var(--brand); }
.bible-card[aria-expanded="true"] { transform:translateY(-3px); border-color:var(--brand-bright); background:var(--surface); box-shadow:0 18px 40px rgba(28,27,24,.08); }
.bible-card[aria-expanded="true"] .bible-card-body { grid-template-rows:1fr; opacity:1; }
.bible-card[aria-expanded="true"] .bible-closed { opacity:0; transform:scale(.72) rotate(7deg); }
.bible-card[aria-expanded="true"] .bible-open { opacity:1; transform:none; }

/* Iconografía vectorial que conserva contraste en ambos temas. */
.step-card .step-icon { flex:0 0 auto; font-size:0; color:transparent; background-color:var(--brand); -webkit-mask:center/29px no-repeat; mask:center/29px no-repeat; }
.step-icon.step-church { -webkit-mask-image:url("https://api.iconify.design/ph:church.svg"); mask-image:url("https://api.iconify.design/ph:church.svg"); }
.step-icon.step-community { -webkit-mask-image:url("https://api.iconify.design/ph:users-three.svg"); mask-image:url("https://api.iconify.design/ph:users-three.svg"); }
.step-icon.step-prayer { -webkit-mask-image:url("https://api.iconify.design/ph:hands-praying.svg"); mask-image:url("https://api.iconify.design/ph:hands-praying.svg"); }
.social-section { background:var(--surface); }
.social-section .social-hub { margin-top:0; }

/* Biblias físicas: portada cerrada y pliego de dos páginas al explorar. */
.conviction-heading { max-width:860px; margin-bottom:clamp(45px,7vw,80px); text-align:center; }
.conviction-heading .large-copy { max-width:720px; margin-inline:auto; }
.doctrine-books { display:grid; gap:clamp(30px,5vw,58px); }
.doctrine-book { position:relative; min-height:310px; display:grid; place-items:center; perspective:1800px; cursor:pointer; outline:0; transition:min-height .45s ease; }
.book-cover { position:absolute; z-index:2; width:min(430px,88%); min-height:260px; padding:38px; display:flex; flex-direction:column; align-items:center; justify-content:center; border:1px solid color-mix(in srgb,var(--brand-bright) 65%,transparent); border-radius:8px 18px 18px 8px; background:radial-gradient(circle at 50% 32%,rgba(255,255,255,.08),transparent 35%),linear-gradient(145deg,var(--book-cover),var(--book-cover-deep)); color:#fff8ed; box-shadow:-8px 9px 0 color-mix(in srgb,var(--book-page) 82%,#9b7650),0 25px 55px rgba(28,27,24,.26),inset 9px 0 16px rgba(0,0,0,.18); transform-origin:left center; transition:opacity .34s ease,transform .55s cubic-bezier(.2,.8,.2,1); }
.book-cover::before { content:""; position:absolute; inset:10px; border:1px solid rgba(234,194,130,.43); border-radius:4px 13px 13px 4px; }
.book-cover::after { content:""; position:absolute; left:21px; top:0; bottom:0; width:2px; background:rgba(255,255,255,.12); box-shadow:5px 0 8px rgba(0,0,0,.2); }
.book-cover small { position:relative; z-index:1; color:#e9c489; font-size:.64rem; font-weight:800; letter-spacing:.18em; text-transform:uppercase; }
.book-cover h3 { position:relative; z-index:1; max-width:330px; margin:17px 0 22px; color:#fff8ed; font-size:clamp(1.75rem,4vw,2.65rem); text-align:center; }
.book-hint { position:relative; z-index:1; padding-top:15px; border-top:1px solid rgba(255,255,255,.23); color:rgba(255,248,237,.72); font-size:.66rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.book-cross { position:relative; z-index:1; width:34px; height:52px; margin-bottom:12px; display:block; }
.book-cross::before, .book-cross::after { content:""; position:absolute; border-radius:2px; background:#e9c489; }
.book-cross::before { left:14px; top:0; width:6px; height:52px; }
.book-cross::after { left:0; top:15px; width:34px; height:6px; }
.book-spread { position:absolute; inset:0; width:min(960px,100%); min-height:340px; margin:auto; display:grid; grid-template-columns:1fr 1fr; opacity:0; pointer-events:none; filter:drop-shadow(0 28px 42px rgba(28,27,24,.2)); transform:scaleX(.32) translateY(8px); transform-origin:center; transition:opacity .32s ease,transform .58s cubic-bezier(.2,.8,.2,1); }
.book-spread::after { content:""; position:absolute; z-index:2; left:calc(50% - 9px); top:8px; bottom:8px; width:18px; background:linear-gradient(90deg,rgba(0,0,0,.18),transparent 47%,rgba(0,0,0,.14)); pointer-events:none; }
.book-page { position:relative; min-height:340px; padding:clamp(32px,5vw,56px); background:linear-gradient(135deg,var(--book-page),var(--book-page-soft)); color:var(--ink); }
.book-page-left { border-radius:20px 5px 5px 20px; box-shadow:inset -16px 0 24px rgba(0,0,0,.06); transform:rotateY(2deg); transform-origin:right; }
.book-page-right { border-radius:5px 20px 20px 5px; box-shadow:inset 16px 0 24px rgba(0,0,0,.06); transform:rotateY(-2deg); transform-origin:left; }
.book-page h3 { margin:8px 0 20px; font-size:clamp(1.75rem,3.5vw,2.7rem); }
.book-page h4 { margin:14px 0 18px; font-family:"Manrope"; font-size:clamp(1.35rem,2.5vw,1.9rem); letter-spacing:-.035em; }
.book-page p { color:var(--ink-soft); line-height:1.7; }
.book-page .book-passage { color:var(--ink); font-family:Georgia,"Times New Roman",serif; font-size:clamp(.98rem,1.5vw,1.12rem); line-height:1.65; }
.book-version { color:var(--brand); font-size:.65rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.book-page a { display:inline-flex; margin-top:8px; padding-bottom:4px; border-bottom:1px solid currentColor; color:var(--brand); font-size:.7rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.doctrine-book[aria-expanded="true"] { min-height:380px; }
.doctrine-book[aria-expanded="true"] .book-cover { opacity:0; transform:translateX(-42%) rotateY(-88deg) scale(.88); pointer-events:none; }
.doctrine-book[aria-expanded="true"] .book-spread { opacity:1; pointer-events:auto; transform:none; }
.doctrine-book:focus-visible .book-cover { box-shadow:0 0 0 3px var(--brand-bright),-8px 9px 0 color-mix(in srgb,var(--book-page) 82%,#9b7650),0 25px 55px rgba(28,27,24,.26); }

/* Navegación interna compacta para páginas largas. */
.section-jump-nav { position:sticky; z-index:80; top:76px; padding:10px 0; border-bottom:1px solid var(--line); background:color-mix(in srgb,var(--paper) 90%,transparent); backdrop-filter:blur(14px); }
.section-jump-nav .wrap { display:flex; gap:9px; overflow-x:auto; scrollbar-width:none; }
.section-jump-nav .wrap::-webkit-scrollbar { display:none; }
.section-jump-nav a { flex:0 0 auto; padding:9px 14px; border-radius:999px; background:var(--surface-2); color:var(--ink-soft); font-size:.72rem; font-weight:800; letter-spacing:.06em; transition:background .2s,color .2s,transform .2s; }
.section-jump-nav a:hover, .section-jump-nav a:focus-visible { background:var(--brand); color:var(--on-brand); transform:translateY(-2px); }

/* Formulario completo de consejería. */
.counseling-form-section { padding:clamp(70px,9vw,120px) 0; }
.counseling-full-form { max-width:1060px; margin:auto; }
.form-heading { max-width:760px; margin-bottom:55px; }
.counseling-full-form fieldset { min-width:0; }
.form-section { margin:0 0 34px; padding:clamp(26px,5vw,52px); border:1px solid var(--line); border-radius:26px; background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--surface-2) 78%,var(--surface))); box-shadow:0 24px 65px rgba(28,27,24,.07); }
.form-section > legend { max-width:calc(100% - 12px); margin-left:-18px; padding:11px 20px; border-radius:12px; background:var(--brand); color:var(--on-brand); box-shadow:0 10px 24px rgba(95,61,43,.2); transform:translateX(-12px); font-family:"Manrope"; font-size:clamp(1.15rem,2.4vw,1.7rem); font-weight:800; line-height:1.2; letter-spacing:-.035em; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.form-grid > label, .form-question > label { display:grid; gap:8px; color:var(--ink-soft); font-size:.82rem; font-weight:700; }
.form-grid .span-2 { grid-column:1/-1; }
.counseling-full-form input:not([type="radio"]):not([type="checkbox"]), .counseling-full-form textarea { width:100%; padding:13px 0; border:0; border-bottom:1px solid color-mix(in srgb,var(--ink) 22%,transparent); border-radius:0; outline:0; background:transparent; color:var(--ink); resize:vertical; transition:border-color .2s,box-shadow .2s; }
.counseling-full-form input:focus, .counseling-full-form textarea:focus { border-color:var(--brand); box-shadow:0 2px 0 var(--brand); }
.choice-group { grid-column:span 1; padding:18px; display:flex; flex-wrap:wrap; gap:12px 20px; border:1px solid var(--line); border-radius:16px; }
.choice-group > legend { padding:0 7px; color:var(--ink-soft); font-size:.78rem; font-weight:800; }
.choice-group label, .inline-options label { display:flex; align-items:center; gap:8px; color:var(--ink-soft); font-size:.82rem; }
.question-list { display:grid; gap:28px; }
.form-question { margin:0; padding-bottom:28px; border-bottom:1px solid var(--line); }
.form-question:last-child { padding-bottom:0; border:0; }
.form-question h3, .form-question > strong { display:block; margin:0 0 14px; color:var(--ink); font-size:1rem; }
.inline-options { display:flex; gap:22px; margin-bottom:16px; }
.counseling-agreement-full { margin:80px 0; }
.agreement-heading { max-width:760px; margin-bottom:40px; }
.agreement-list { border-top:1px solid var(--line); }
.agreement-list article { display:grid; grid-template-columns:minmax(190px,.42fr) 1fr; gap:clamp(30px,6vw,80px); padding:34px 0; border-bottom:1px solid var(--line); }
.agreement-list h3 { margin:0; font-size:1.2rem; }
.agreement-list p, .agreement-list ul { margin:0; color:var(--ink-soft); }
.agreement-list ul { padding-left:20px; }
.agreement-list strong { color:var(--ink); }
.consent-section { background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 12%,var(--surface)),var(--surface)); }
.signature-grid { margin-top:30px; }
.form-actions { padding:28px 0; display:flex; flex-wrap:wrap; align-items:center; gap:14px; }
.form-actions p { flex-basis:100%; max-width:760px; color:var(--ink-soft); font-size:.8rem; }
.counseling-request-form { max-width:760px; }
.counseling-request-form .form-heading { margin-bottom:38px; }
.counseling-request-form .form-heading > p:last-child { max-width:560px; color:var(--ink-soft); }
.counseling-request-form .form-section { margin-bottom:20px; }
.counseling-essentials { margin:0 0 20px; border:1px solid var(--line); border-radius:16px; background:var(--surface); }
.counseling-essentials summary { padding:18px 52px 18px 20px; position:relative; cursor:pointer; list-style:none; color:var(--ink); font-weight:800; }
.counseling-essentials summary::-webkit-details-marker { display:none; }
.counseling-essentials summary::after { content:"+"; position:absolute; right:20px; top:50%; color:var(--brand); font-size:1.25rem; transform:translateY(-50%); }
.counseling-essentials[open] summary::after { content:"−"; }
.counseling-essentials ul { margin:0; padding:0 28px 20px 40px; color:var(--ink-soft); }
.counseling-essentials li + li { margin-top:9px; }
.counseling-privacy-consent { margin:0; padding:18px 20px; border-radius:16px; background:color-mix(in srgb,var(--brand) 9%,var(--surface)); }
.counseling-privacy-consent a { color:var(--brand); font-weight:800; text-decoration:underline; text-underline-offset:4px; }
.counseling-request-form .form-actions { padding-bottom:0; }
.counseling-honeypot { position:fixed !important; left:-100vw; width:1px; height:1px; overflow:hidden; pointer-events:none; }
.counseling-submit:disabled { cursor:wait; opacity:.72; transform:none; }
.counseling-submit-status { flex-basis:100%; padding:15px 17px; border-radius:12px; font-size:.88rem; font-weight:700; }
.counseling-submit-status.is-success { color:#255c3a; background:#e5f4e9; }
.counseling-submit-status.is-error { color:#7c2d2d; background:#f8e5e3; }
.counseling-whatsapp-fallback { margin-top:2px; }
.counseling-submit-status[hidden], .counseling-whatsapp-fallback[hidden] { display:none; }

/* A quiet, reassuring confirmation keeps the next step visible after delivery. */
.counseling-field-hint { font-size:.875rem; font-weight:400; line-height:1.5; }
.counseling-contact-choice fieldset { padding:0; border:0; margin:0; }
.counseling-contact-choice legend { margin:0 0 12px; font-size:1rem; font-weight:700; color:var(--ink); letter-spacing:0; }
.counseling-contact-options { display:flex; flex-wrap:wrap; gap:12px; }
.counseling-contact-options label { display:flex; align-items:center; gap:12px; min-height:60px; padding:14px 20px; border:1px solid var(--line); border-radius:14px; background:var(--surface); cursor:pointer; font-size:1rem; transition:background .25s ease,border-color .25s ease,box-shadow .25s ease; }
.counseling-contact-options label:hover { border-color:var(--brand); box-shadow:0 3px 12px color-mix(in srgb,var(--brand) 8%,transparent); }
.counseling-contact-icon { flex:0 0 26px; width:26px; height:26px; object-fit:contain; }
.counseling-phone-icon { color:var(--brand); stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.counseling-contact-options label:has(input:checked) { border-color:var(--brand); background:color-mix(in srgb,var(--brand-bright) 12%,var(--surface)); }
.counseling-contact-options input { width:18px; height:18px; accent-color:var(--brand); margin:0; }
.counseling-contact-options label:focus-within { outline:2px solid var(--brand); outline-offset:3px; }
.counseling-submit { gap:12px; }
.counseling-submit-spinner { display:none; width:18px; height:18px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; }
.counseling-submit[aria-busy="true"] .counseling-submit-spinner { display:block; animation:counseling-spin .9s linear infinite; }
.counseling-submit-status { font-size:1rem; line-height:1.6; font-weight:500; }
.counseling-submit-status.is-sending { color:var(--ink); background:var(--surface-2); }
.counseling-request-form[hidden], .counseling-confirmation[hidden] { display:none !important; }
.counseling-delivery-complete :is(.service-bar, .utility-rail) { display:none; }
.counseling-confirmation { position:relative; max-width:780px; margin:auto; padding:clamp(28px,5vw,56px); border:1px solid var(--line); border-radius:24px; background:radial-gradient(ellipse at 50% 0,color-mix(in srgb,var(--brand-bright) 18%,transparent),transparent 58%),var(--surface); box-shadow:0 18px 55px color-mix(in srgb,var(--brand-deep) 10%,transparent); text-align:center; scroll-margin-top:120px; animation:counseling-arrive .65s ease-out both; }
.counseling-confirmation .eyebrow { margin:24px 0 12px; }
.counseling-confirmation h2 { font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(2.5rem,6vw,3.8rem); font-weight:400; line-height:1.1; letter-spacing:-.025em; margin-bottom:20px; }
.counseling-confirmation h2:focus-visible { outline:2px solid var(--brand); outline-offset:6px; }
.counseling-confirmation-mark { position:relative; width:84px; height:84px; display:grid; place-items:center; margin:auto; color:var(--brand); border-radius:50%; background:color-mix(in srgb,var(--brand-bright) 17%,var(--surface)); }
.counseling-confirmation-mark::before { content:""; position:absolute; inset:-9px; border:1px solid color-mix(in srgb,var(--brand-bright) 50%,transparent); border-radius:50%; animation:counseling-halo 1.4s ease-out both; }
.counseling-confirmation-mark svg { width:60px; height:60px; stroke:currentColor; stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; }
.counseling-confirmation-mark circle { stroke-dasharray:176; animation:counseling-circle .75s ease-out both; }
.counseling-confirmation-mark path { stroke-dasharray:42; animation:counseling-check .45s .45s ease-out both; }
.counseling-confirmation-intro { font-size:1.125rem; line-height:1.7; margin:0 auto 14px; max-width:580px; overflow-wrap:anywhere; }
.counseling-confirmation-contact { color:var(--ink-soft); font-size:1rem; line-height:1.7; overflow-wrap:anywhere; }
.counseling-next-heading { margin:30px 0 18px; text-align:left; font-size:1.125rem; line-height:1.5; }
.counseling-next-steps { list-style:none; margin:0 0 26px; padding:0; text-align:left; }
.counseling-next-steps li { position:relative; display:grid; grid-template-columns:20px minmax(0,1fr); gap:16px; padding-bottom:24px; }
.counseling-next-steps li:last-child { padding-bottom:0; }
.counseling-next-steps li:not(:last-child)::before { content:""; position:absolute; left:9px; top:14px; bottom:-14px; width:2px; background:color-mix(in srgb,var(--brand) 28%,var(--surface)); transform-origin:top; animation:counseling-connect .65s .35s ease-out both; }
.counseling-step-dot { position:relative; z-index:1; display:block; width:12px; height:12px; margin:7px 4px 0; border-radius:50%; background:var(--brand); box-shadow:0 0 0 4px var(--surface),0 0 0 5px color-mix(in srgb,var(--brand) 20%,var(--surface)); }
.counseling-next-steps li > div { animation:counseling-arrive .55s .2s ease-out both; }
.counseling-next-steps li:nth-child(2) > div { animation-delay:.3s; }
.counseling-next-steps li:nth-child(3) > div { animation-delay:.4s; }
.counseling-next-steps strong { display:block; font-size:1rem; line-height:1.6; }
.counseling-next-steps p { margin:4px 0 0; color:var(--ink-soft); font-size:1rem; line-height:1.6; }
.counseling-confirmation-note { font-size:1rem; font-style:italic; color:var(--ink-soft); line-height:1.6; margin-bottom:24px; }
@keyframes counseling-connect { from { transform:scaleY(0); } to { transform:scaleY(1); } }
@keyframes counseling-spin { to { transform:rotate(360deg); } }
@keyframes counseling-arrive { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:translateY(0); } }
@keyframes counseling-halo { from { opacity:0; transform:scale(.88); } 35% { opacity:1; } to { opacity:.65; transform:scale(1); } }
@keyframes counseling-circle { from { stroke-dashoffset:176; } to { stroke-dashoffset:0; } }
@keyframes counseling-check { from { stroke-dashoffset:42; } to { stroke-dashoffset:0; } }
@media (max-width:600px) { .counseling-contact-options { display:grid; grid-template-columns:1fr 1fr; gap:10px; } .counseling-contact-options label { padding:12px; gap:8px; } .counseling-confirmation { padding:30px 22px; scroll-margin-top:90px; } .counseling-confirmation .button { width:100%; } }
@media (prefers-reduced-motion:reduce) {
  .counseling-confirmation, .counseling-confirmation-mark::before, .counseling-confirmation-mark circle, .counseling-confirmation-mark path, .counseling-next-steps li::before, .counseling-next-steps li > div, .counseling-submit[aria-busy="true"] .counseling-submit-spinner { animation:none; }
  .counseling-contact-options label { transition:none; }
}

/* Declaración doctrinal completa y fácil de recorrer. */
.doctrine-full-layout { display:grid; grid-template-columns:260px minmax(0,1fr); gap:clamp(38px,7vw,90px); align-items:start; }
.doctrine-index { position:sticky; top:138px; padding:24px; display:grid; gap:2px; border-radius:20px; background:var(--surface-2); max-height:calc(100vh - 175px); overflow:auto; }
.doctrine-index .eyebrow { margin-bottom:10px; }
.doctrine-index .index-group { margin:13px 9px 3px; color:var(--brand); font-size:.62rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.doctrine-index a { padding:8px 9px; border-radius:8px; color:var(--ink-soft); font-size:.74rem; font-weight:700; transition:background .2s,color .2s; }
.doctrine-index a:hover { background:var(--surface); color:var(--brand); }
.doctrine-complete { border-top:1px solid var(--line); }
.doctrine-complete details { border-bottom:1px solid var(--line); }
.doctrine-complete summary { position:relative; padding:28px 48px 28px 0; cursor:pointer; list-style:none; font-family:"Manrope"; font-size:clamp(1.15rem,2.2vw,1.55rem); font-weight:800; }
.doctrine-complete summary::-webkit-details-marker { display:none; }
.doctrine-complete summary::after { content:"↓"; position:absolute; right:8px; color:var(--brand); transition:transform .22s; }
.doctrine-complete details[open] summary::after { transform:rotate(180deg); }
.doctrine-complete summary span { display:block; margin-bottom:6px; color:var(--brand); font-family:"DM Sans"; font-size:.65rem; letter-spacing:.13em; text-transform:uppercase; }
.doctrine-body { padding:0 48px 34px 0; color:var(--ink-soft); line-height:1.8; }
.doctrine-body h3 { margin:28px 0 10px; color:var(--ink); font-size:1.05rem; letter-spacing:-.025em; }
.doctrine-body strong { color:var(--ink); }
.constitution-chapter { padding:52px 0 30px; border-bottom:3px solid var(--brand); }
.constitution-chapter:first-child { padding-top:0; }
.constitution-chapter span { color:var(--brand); font-size:.68rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.constitution-chapter h2 { margin:10px 0 12px; font-size:clamp(2rem,4vw,3.4rem); }
.constitution-chapter p { max-width:720px; margin:0; color:var(--ink-soft); }
.doctrine-anchor { height:1px; scroll-margin-top:150px; }

/* Calendario oficial, enmarcado como experiencia principal. */
.calendar-experience { padding:clamp(75px,9vw,120px) 0; }
.calendar-experience-head { margin-bottom:42px; display:grid; grid-template-columns:1fr auto; gap:40px; align-items:end; }
.calendar-experience-head > div:first-child { max-width:760px; }
.calendar-experience-head p:not(.eyebrow) { color:var(--ink-soft); }
.calendar-head-actions { display:grid; justify-items:start; gap:20px; }
.calendar-frame-shell { padding:14px; border-radius:28px; background:#1c1b18; box-shadow:0 30px 80px rgba(28,27,24,.2); overflow:hidden; }
.calendar-frame-top { padding:12px 10px 22px; display:flex; justify-content:space-between; gap:25px; color:#faf9f6; }
.calendar-frame-top > div { display:flex; align-items:center; gap:10px; }
.calendar-frame-top p { max-width:580px; margin:0; color:rgba(255,255,255,.62); font-size:.78rem; }
.calendar-live-dot { width:9px; height:9px; border-radius:50%; background:#36d37e; box-shadow:0 0 0 6px rgba(54,211,126,.12); }
.google-calendar-frame { display:block; width:100%; height:720px; border:0; border-radius:18px; background:#fff; }
.weekly-section { padding:clamp(75px,9vw,120px) 0; background:var(--surface); }
.weekly-layout { display:grid; grid-template-columns:.65fr 1.35fr; gap:clamp(45px,8vw,105px); }
.weekly-heading { position:sticky; top:145px; align-self:start; }
.weekly-heading p:not(.eyebrow) { color:var(--ink-soft); }
.weekly-list { border-top:1px solid var(--line); }
.weekly-list article { padding:25px 0; display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:24px; border-bottom:1px solid var(--line); }
.weekly-list time { color:var(--brand); font-size:.7rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.weekly-list h3 { margin:5px 0 0; font-size:1.15rem; }
.weekly-list article > div > p { max-width:610px; margin:8px 0 0; color:var(--ink-soft); font-size:.82rem; line-height:1.55; }
.weekly-list > article > strong { color:var(--ink-soft); font-size:.86rem; white-space:nowrap; }
.calendar-add { padding:10px 14px; border:1px solid var(--line); border-radius:999px; background:transparent; color:var(--ink); font-size:.7rem; font-weight:800; cursor:pointer; transition:background .2s,color .2s,transform .2s; }
.calendar-add:hover { background:var(--brand); color:var(--on-brand); transform:translateY(-2px); }
.opening-section { padding:clamp(75px,9vw,120px) 0; background:var(--paper); }
.opening-layout { display:grid; grid-template-columns:.72fr 1.28fr; gap:clamp(45px,8vw,105px); align-items:start; }
.opening-heading p:not(.eyebrow) { max-width:520px; color:var(--ink-soft); }
.opening-list { border-top:1px solid var(--line); }
.opening-list article { padding:23px 0; display:flex; justify-content:space-between; gap:30px; align-items:baseline; border-bottom:1px solid var(--line); }
.opening-list h3 { margin:0; font-size:1.04rem; }
.opening-list strong { color:var(--brand); font-size:.83rem; white-space:nowrap; }

@media (max-width:850px) {
  .mobile-menu summary::after { display:none; content:none; }
  .mobile-menu summary { align-items:center; transition:background .22s,color .22s; }
  .mobile-chevron { width:10px; height:10px; margin-left:auto; flex:0 0 auto; border-right:2px solid var(--brand-bright); border-bottom:2px solid var(--brand-bright); transform:rotate(45deg); transition:transform .3s cubic-bezier(.2,.7,.2,1); }
  .mobile-menu details[open] .mobile-chevron { transform:rotate(225deg); }
  .mobile-menu details > .mobile-submenu { padding:0 0 0 32px; display:grid; grid-template-rows:0fr; opacity:0; transition:grid-template-rows .32s ease,opacity .24s ease; }
  .mobile-menu details[open] > .mobile-submenu { grid-template-rows:1fr; opacity:1; }
  .mobile-menu .mobile-submenu > div { min-height:0; padding:0; display:grid; overflow:hidden; }
  .mobile-menu details[open] .mobile-submenu > div { padding-bottom:14px; }
  .mobile-menu details div a { transition:color .2s,transform .2s,background .2s; }
  .mobile-menu details div a:active { color:#fff; transform:translateX(6px); }
  .social-channel-grid, .connected-utilities { grid-template-columns:1fr; }
  .doctrine-full-layout { grid-template-columns:1fr; }
  .doctrine-index { position:static; max-height:none; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .doctrine-index .eyebrow { grid-column:1/-1; }
  .calendar-experience-head, .weekly-layout, .opening-layout { grid-template-columns:1fr; }
  .weekly-heading { position:static; }
  .google-calendar-frame { height:660px; }
  .book-spread { width:min(720px,100%); }
}

@media (max-width:560px) {
  .compact-page-hero { min-height:370px; padding:150px 0 54px; }
  .section-jump-nav { top:74px; }
  .social-hub { width:calc(100% - 28px); padding:30px 20px; border-radius:24px; }
  .social-channel { min-height:126px; padding:19px; grid-template-columns:40px 1fr; gap:14px; }
  .social-channel img { width:36px; height:36px; }
  .social-channel b { grid-column:2; }
  .connected-utilities > a { padding:17px; }
  .form-grid { grid-template-columns:1fr; }
  .form-grid .span-2, .choice-group { grid-column:1; }
  .form-section { padding:25px 20px; border-radius:20px; }
  .form-section > legend { margin-left:-10px; padding:9px 15px; border-radius:10px; transform:translateX(-10px); font-size:1.08rem; }
  .agreement-list article { grid-template-columns:1fr; gap:12px; }
  .doctrine-index { grid-template-columns:1fr; }
  .doctrine-body { padding-right:0; }
  .calendar-frame-shell { width:calc(100% - 20px); padding:8px; border-radius:20px; }
  .calendar-frame-top { display:block; padding:12px 10px 16px; }
  .calendar-frame-top p { margin-top:8px; }
  .google-calendar-frame { height:620px; border-radius:14px; }
  .weekly-list article { grid-template-columns:1fr auto; gap:12px; }
  .weekly-list > article > strong { grid-column:1; }
  .doctrine-book { min-height:250px; }
  .book-cover { min-height:220px; padding:30px 26px; }
  .book-cover h3 { font-size:1.75rem; }
  .doctrine-book[aria-expanded="true"] { min-height:720px; }
  .book-spread { min-height:690px; grid-template-columns:1fr; }
  .book-spread::after { left:12px; right:12px; top:calc(50% - 7px); bottom:auto; width:auto; height:14px; background:linear-gradient(180deg,rgba(0,0,0,.14),transparent 48%,rgba(0,0,0,.1)); }
  .book-page { min-height:345px; padding:32px 28px; }
  .book-page-left { border-radius:18px 18px 5px 5px; box-shadow:inset 0 -14px 20px rgba(0,0,0,.05); transform:rotateX(-1deg); transform-origin:bottom; }
  .book-page-right { border-radius:5px 5px 18px 18px; box-shadow:inset 0 14px 20px rgba(0,0,0,.05); transform:rotateX(1deg); transform-origin:top; }
  .calendar-add { grid-column:2; grid-row:1/3; }
  .reveal { opacity:0; transform:translateY(16px); transition:opacity .55s ease,transform .55s ease; }
  .reveal.visible { opacity:1; transform:none; }
}

@media (hover:none) {
  .button:active, .detail-card:active, .step-card:active, .social-channel:active, .calendar-add:active { transform:scale(.98); }
}

@media print {
  body.counseling-page { padding:0; background:#fff; color:#111; }
  .counseling-page .site-header, .counseling-page .page-hero, .counseling-page .section-jump-nav, .counseling-page .page-intro, .counseling-page .site-footer, .counseling-page .service-bar, .counseling-page .whatsapp-float, .counseling-page .form-actions { display:none !important; }
  .counseling-form-section { padding:0; }
  .counseling-full-form { max-width:none; }
  .form-heading { margin-bottom:24px; }
  .form-section { break-inside:avoid; margin-bottom:18px; padding:18px; border:1px solid #bbb; box-shadow:none; background:#fff; }
  .counseling-agreement-full { margin:28px 0; }
  .agreement-list article { break-inside:avoid; padding:18px 0; }
}

/* Interacción táctil pulida sin el destello azul del navegador. */
html { -webkit-tap-highlight-color:transparent; }
:where(a,button,summary,input,select,textarea,[tabindex]) { -webkit-tap-highlight-color:transparent; }
:where(a,button,summary,input,select,textarea,[tabindex]):focus { outline:none; }
:where(a,button,summary,input,select,textarea,[tabindex]):focus-visible { outline:2px solid var(--brand-bright); outline-offset:3px; }
.using-touch :where(a,button,summary,input,select,textarea,[tabindex]):focus-visible { outline:none; }

/* Cuadrículas editoriales: las tarjetas no repiten siempre tres columnas iguales. */
@media (min-width:851px) {
  .mission-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mission-grid .mission-card:first-child { grid-column:1/-1; min-height:455px; }
  .mission-grid .mission-card:not(:first-child) { min-height:390px; }

  .compact-steps { grid-template-columns:repeat(12,minmax(0,1fr)); max-width:1160px; }
  .compact-steps .step-card:nth-child(1) { grid-column:span 5; }
  .compact-steps .step-card:nth-child(2) { grid-column:span 7; }
  .compact-steps .step-card:nth-child(3) { grid-column:1/-1; min-height:245px; }
  .step-card.reveal.visible:is(:hover,:focus-within) { transform:translateY(-12px); border-color:var(--brand-bright); box-shadow:var(--shadow); z-index:1; }
  .step-card.reveal.visible:is(:hover,:focus-within) .step-icon { transform:scale(1.08) rotate(-3deg); }
  .step-card.reveal.visible:is(:hover,:focus-within) > a { transform:translateX(5px); }

  .detail-card-grid:has(> article:nth-child(3):last-child) { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .detail-card-grid:has(> article:nth-child(2):last-child) { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .detail-card-grid:has(> article:nth-child(3):last-child) > article:last-child { grid-column:1/-1; min-height:220px; }
  .detail-card-grid:has(> article:nth-child(6):last-child) { grid-template-columns:repeat(12,minmax(0,1fr)); }
  .detail-card-grid:has(> article:nth-child(6):last-child) > article:nth-child(1) { grid-column:span 7; }
  .detail-card-grid:has(> article:nth-child(6):last-child) > article:nth-child(2) { grid-column:span 5; }
  .detail-card-grid:has(> article:nth-child(6):last-child) > article:nth-child(3),
  .detail-card-grid:has(> article:nth-child(6):last-child) > article:nth-child(4),
  .detail-card-grid:has(> article:nth-child(6):last-child) > article:nth-child(5) { grid-column:span 4; }
  .detail-card-grid:has(> article:nth-child(6):last-child) > article:nth-child(6) { grid-column:1/-1; min-height:220px; }

  .ministry-grid { grid-template-columns:repeat(12,minmax(0,1fr)); }
  .ministry-grid > article:nth-child(1) { grid-column:span 7; }
  .ministry-grid > article:nth-child(2) { grid-column:span 5; }
  .ministry-grid > article:nth-child(3),
  .ministry-grid > article:nth-child(4),
  .ministry-grid > article:nth-child(5) { grid-column:span 4; }
  .ministry-grid > article:nth-child(6) { grid-column:1/-1; min-height:210px; }
}

@media (hover:none) and (pointer:coarse) {
  :where(a,button,summary,input,select,textarea,[tabindex]):focus-visible { outline:none; }
  :where(.button,.icon-button,.menu-toggle,.text-link,.calendar-add,.social-channel,.connected-utilities a,.detail-card,.step-card,.mission-card,.pillar,.mobile-menu a,.mobile-menu summary) {
    transition:transform .2s cubic-bezier(.2,.8,.2,1),background-color .2s ease,border-color .2s ease,box-shadow .2s ease,filter .2s ease;
    transform-origin:center;
  }
  :where(.button,.icon-button,.menu-toggle,.text-link,.calendar-add,.social-channel,.connected-utilities a,.detail-card,.step-card,.mission-card,.pillar):active {
    transform:scale(.975);
    filter:brightness(.96);
  }
  .mobile-menu summary:active { background:rgba(217,154,69,.1); transform:scale(.99); }
  .mobile-menu a:active { transform:translateX(7px); color:#fff; }
}

/* Ajustes de navegación, contenido y contraste de agosto de 2026. */
.pastor-card { background:var(--surface); }
.pastor-copy h3 { color:var(--ink); }
html[data-theme="dark"] :is(.pastor-card,.deacon-card) { border-color:var(--line); background:var(--surface); box-shadow:0 24px 60px rgba(0,0,0,.28); }
html[data-theme="dark"] .pastor-copy h3 { color:#faf9f6; }
html[data-theme="dark"] .deacon-card h3 { color:#faf9f6; }

.step-card[data-card-href] { cursor:pointer; }
.step-card[data-card-href]:focus-visible { border-color:var(--brand-bright); box-shadow:var(--shadow); }

.gmail-link { min-height:44px; display:inline-flex; align-items:center; gap:10px; }
.gmail-link img { width:23px; height:23px; object-fit:contain; }
.gmail-link.light { color:#faf9f6; }
.footer-contact .gmail-link { width:100%; padding:9px 12px; border:1px solid rgba(255,255,255,.18); border-radius:10px; }
.footer-phone { width:100%; min-height:38px; padding:7px 12px; display:inline-flex; align-items:center; border-radius:8px; font-weight:700; }
.gmail-button { background:var(--surface); color:var(--ink); border-color:var(--line); }
.gmail-button img { width:25px; height:25px; }

.about-beliefs { background:var(--surface); }
.about-beliefs-heading { margin-bottom:32px; }
.about-beliefs-heading h2 { margin-bottom:0; }
@media (min-width:851px) {
  .about-beliefs-heading { margin-top:-28px; margin-bottom:56px; }
}
.about-beliefs .about-beliefs-photo { object-position:50% 74%; transform:scale(1.045); filter:brightness(1.08) contrast(1.025) saturate(.94) sepia(.08); }

.live-section { background:var(--paper); }
.live-experience { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr); border-radius:26px; overflow:hidden; background:var(--surface); box-shadow:var(--shadow); }
.live-video { position:relative; min-height:480px; background:#090909; }
.live-video iframe { width:100%; height:100%; min-height:480px; border:0; display:block; }
.live-video iframe[hidden] { display:none; }
.live-placeholder { position:absolute; inset:0; z-index:2; min-height:480px; padding:42px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; color:#f7f3eb; text-align:center; background:radial-gradient(circle at 50% 35%,rgba(218,157,72,.17),transparent 34%),#171614; }
.live-placeholder[hidden], [data-live-retry][hidden] { display:none; }
.live-placeholder img { width:70px; height:70px; margin-bottom:8px; filter:brightness(0) invert(1); opacity:.88; }
.live-hourglass { width:76px; height:76px; margin-bottom:10px; display:grid; place-items:center; font-size:3.6rem; line-height:1; transform-origin:50% 52%; filter:drop-shadow(0 8px 20px rgba(218,157,72,.25)); }
.live-placeholder.is-loading .live-hourglass { animation:liveHourglassTurn 1.45s cubic-bezier(.65,0,.35,1) infinite; }
.live-placeholder strong { font-size:clamp(1.25rem,2.5vw,2rem); }
.live-placeholder span { max-width:460px; color:rgba(255,255,255,.66); }
@keyframes liveHourglassTurn { 0%,38%{transform:rotate(0deg)} 62%,100%{transform:rotate(180deg)} }
.live-copy { padding:clamp(34px,5vw,65px); display:flex; flex-direction:column; justify-content:center; }
.live-copy .live-dot { width:13px; height:13px; margin-bottom:22px; border-radius:50%; background:#e34545; box-shadow:0 0 0 8px color-mix(in srgb,#e34545 18%,transparent); }
.live-copy h3 { margin-bottom:18px; font-size:clamp(1.8rem,3.5vw,3rem); }
.live-copy p:not(.eyebrow) { color:var(--ink-soft); }
.live-copy .button { align-self:flex-start; margin-top:18px; }
.live-copy .button img { width:25px; height:25px; }

.calendar-google-button { min-height:68px; padding-inline:22px; }
.calendar-google-button img { width:34px; height:34px; flex:0 0 auto; }

.consent-explainer { max-width:780px; margin-bottom:24px; color:var(--ink-soft); }
.print-signature-lines { display:none; }

.ministry-grid article { padding:0; overflow:hidden; display:flex; flex-direction:column; }
.ministry-photo-slot { min-height:210px; aspect-ratio:16/10; display:grid; place-items:center; align-content:center; gap:12px; position:relative; overflow:hidden; background:linear-gradient(145deg,var(--brand-deep),#1c1b18); color:rgba(255,255,255,.82); }
.ministry-photo-slot img { width:100%; height:100%; max-height:none; object-fit:cover; opacity:1; transition:transform .7s cubic-bezier(.2,.8,.2,1),filter .5s ease; }
.ministry-grid article:hover .ministry-photo-slot img { transform:scale(1.055); filter:saturate(1.06) contrast(1.03); }
.ministry-photo-slot.is-placeholder img { width:76px; height:76px; object-fit:contain; opacity:.64; filter:none; }
.ministry-grid article:hover .ministry-photo-slot.is-placeholder img { transform:translateY(-4px) scale(1.04); filter:none; }
.ministry-photo-slot span { font-size:.65rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.ministry-photo-slot.is-verified-pending { background:radial-gradient(circle at 18% 24%,rgba(226,161,63,.22),transparent 25%),radial-gradient(circle at 82% 76%,rgba(112,66,40,.42),transparent 31%),linear-gradient(145deg,#3b2a20,#1c1b18); }
.ministry-photo-slot.is-verified-pending::before { content:""; position:absolute; inset:18px; border:1px solid rgba(255,255,255,.13); border-radius:18px; pointer-events:none; }
.ministry-photo-slot.is-verified-pending span { position:relative; max-width:190px; text-align:center; line-height:1.6; color:rgba(255,255,255,.76); }
.ministry-card-copy { padding:28px 30px 32px; }
.ministry-card-copy h3 { margin:0 0 12px; }
.ministry-card-copy p { margin:0; }

html[data-theme="dark"] {
  --book-cover:#74482f;
  --book-cover-deep:#3f291f;
  --book-page:#29251f;
  --book-page-soft:#211e1a;
}

@media (min-width:851px) {
  .mission-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mission-grid .mission-card:first-child,
  .mission-grid .mission-card:not(:first-child) { grid-column:auto; min-height:440px; }
}

@media (max-width:850px) {
  .live-experience { grid-template-columns:1fr; }
  .live-video, .live-video iframe { min-height:auto; aspect-ratio:16/9; }
  .live-placeholder { min-height:0; padding:clamp(18px,5vw,30px); }
  .live-hourglass { width:56px; height:56px; margin-bottom:4px; font-size:2.75rem; }
  .live-placeholder strong { font-size:clamp(1.05rem,4vw,1.4rem); }
  .live-placeholder span:last-child { font-size:.9rem; }
}

@media (max-width:560px) {
  .calendar-google-button { width:100%; min-height:74px; justify-content:flex-start; text-align:left; }
  .live-copy { padding:32px 24px 38px; }
  .form-actions .button { width:100%; }
  .ministry-photo-slot { min-height:170px; }
  .footer-contact { width:min(100%,310px); min-width:0; }
}

@media print {
  .print-signature-lines { margin-top:42px; display:grid; grid-template-columns:1fr 1fr; gap:50px; }
  .print-signature-lines span { padding-top:7px; border-top:1px solid #111; color:#111; font-size:.76rem; }
  .counseling-page .reveal { opacity:1 !important; transform:none !important; }
}

/* En celular la Biblia conserva el formato real de dos páginas enfrentadas. */
@media (max-width:560px) {
  .doctrine-book,
  .doctrine-book[aria-expanded="true"] { height:440px; min-height:440px; }
  .book-cover { width:88%; height:440px; min-height:440px; padding:34px 24px; transform:none; transition:opacity .18s ease .1s,transform .58s cubic-bezier(.2,.8,.2,1); }
  .book-spread { height:440px; min-height:440px; grid-template-columns:repeat(2,minmax(0,1fr)); transform:none; transition:opacity .24s ease .12s; }
  .book-spread::after { left:calc(50% - 7px); right:auto; top:10px; bottom:10px; width:14px; height:auto; background:linear-gradient(90deg,rgba(0,0,0,.16),transparent 48%,rgba(0,0,0,.12)); }
  .book-page { height:440px; min-width:0; min-height:440px; padding:22px 14px; }
  .book-page-left { border-radius:18px 5px 5px 18px; box-shadow:inset -12px 0 18px rgba(0,0,0,.06); transform:rotateY(2deg); transform-origin:right; }
  .book-page-right { border-radius:5px 18px 18px 5px; box-shadow:inset 12px 0 18px rgba(0,0,0,.06); transform:rotateY(-2deg); transform-origin:left; }
  .book-page h3 { margin:7px 0 15px; font-size:clamp(1.22rem,6vw,1.55rem); }
  .book-page h4 { margin:10px 0 13px; font-size:clamp(1rem,4.6vw,1.22rem); }
  .book-page p { font-size:.78rem; line-height:1.52; }
  .book-page .book-passage { font-size:.78rem; line-height:1.52; }
  .book-version { font-size:.52rem; letter-spacing:.09em; }
  .book-page a { margin-top:5px; font-size:.56rem; line-height:1.45; letter-spacing:.05em; }
  .doctrine-book[aria-expanded="true"] .book-cover { opacity:0; transform:rotateY(-90deg); }
}

/* Revisión integral: eventos, accesos rápidos, formulario y navegación precisa. */
[id] { scroll-margin-top:78px; }
.doctrine-anchor { scroll-margin-top:82px; }

.book-page-right { display:flex; flex-direction:column; align-items:flex-start; }
.book-page-right h4 { margin-top:0; }
.book-version { width:100%; margin-top:auto; padding-top:14px; border-top:1px solid color-mix(in srgb,var(--ink) 25%,transparent); display:block; }

.event-promo .band-content { max-width:930px; }
.event-promo-meta { margin:28px 0 24px; display:flex; align-items:center; gap:14px; color:#f0c77f; font-size:clamp(1rem,1.6vw,1.22rem); font-weight:900; letter-spacing:.075em; text-transform:uppercase; }
.event-promo-meta::before { content:""; width:34px; height:2px; background:currentColor; }
.noche-mexicana { min-height:760px; background:#183b2b; isolation:isolate; }
.noche-mexicana .band-media { background-image:url("assets/verified/noche-mexicana-archivo.png?v=4k-20260914"); background-position:center 43%; background-attachment:scroll; transform:scale(1.025); animation:eventPhotoDrift 16s cubic-bezier(.22,.61,.36,1) infinite alternate; }
.noche-mexicana .band-shade { background:linear-gradient(90deg,rgba(19,45,32,.96) 0%,rgba(34,38,26,.76) 48%,rgba(74,27,25,.38) 100%),linear-gradient(0deg,rgba(14,24,18,.68),transparent 55%); }
.noche-mexicana::after { content:""; position:absolute; inset:0; z-index:0; pointer-events:none; background:radial-gradient(circle at 18% 22%,rgba(255,255,255,.12) 0 2px,transparent 3px),radial-gradient(circle at 83% 32%,rgba(226,161,63,.28) 0 3px,transparent 4px); background-size:94px 94px,137px 137px; opacity:.7; animation:eventSparkle 7s linear infinite; }
.noche-mexicana .band-content { z-index:2; padding-block:90px; }
.noche-mexicana .band-content h2 { color:#fff9e9; text-shadow:0 8px 30px rgba(0,0,0,.32); }
.noche-mexicana .event-promo-meta { width:max-content; max-width:100%; padding:17px 22px; border:1px solid rgba(255,255,255,.3); border-radius:999px; background:rgba(79,20,22,.58); backdrop-filter:blur(8px); color:#fff0c3; box-shadow:0 12px 32px rgba(0,0,0,.2); }
.event-memory-note { margin:-6px 0 26px; color:rgba(255,255,255,.62)!important; font-size:.72rem!important; font-style:italic; }
.event-bunting { position:absolute; z-index:2; top:0; left:0; right:0; height:74px; display:flex; justify-content:center; gap:5px; filter:drop-shadow(0 7px 8px rgba(0,0,0,.25)); transform-origin:top; animation:buntingSway 4.5s ease-in-out infinite alternate; }
.event-bunting::before { content:""; position:absolute; top:8px; left:-2%; right:-2%; height:2px; background:rgba(255,247,216,.82); transform:rotate(-.4deg); }
.event-bunting span { width:58px; height:66px; clip-path:polygon(0 0,100% 0,50% 100%); background:#167049; }
.event-bunting span:nth-child(3n+2) { background:#f4ead3; }
.event-bunting span:nth-child(3n) { background:#a82f35; }
@keyframes eventPhotoDrift { to { transform:scale(1.08) translate3d(1.2%,-1%,0); } }
@keyframes eventSparkle { to { background-position:94px 94px,-137px 137px; } }
@keyframes buntingSway { to { transform:rotate(.5deg) translateY(3px); } }
@media (max-width:700px) {
  .noche-mexicana { min-height:720px; align-items:flex-end; }
  .noche-mexicana .band-media { background-position:55% center; }
  .noche-mexicana .band-shade { background:linear-gradient(0deg,rgba(14,33,23,.98) 0%,rgba(20,42,30,.82) 52%,rgba(44,20,20,.28) 100%); }
  .noche-mexicana .band-content { padding:175px 0 68px; }
  .noche-mexicana .band-content h2 { font-size:clamp(3.25rem,19vw,5.2rem); }
  .noche-mexicana .event-promo-meta { width:100%; border-radius:16px; line-height:1.5; }
  .event-bunting { left:-25px; right:-25px; gap:3px; }
  .event-bunting span { width:44px; height:53px; }
}
.band-actions { display:flex; flex-wrap:wrap; gap:12px; }
.ghost-light { border:1px solid rgba(255,255,255,.62); color:#fff; background:rgba(15,13,11,.3); }
.ghost-light:hover { border-color:#fff; background:rgba(255,255,255,.12); }

.required-mark { color:var(--brand-bright); font-weight:900; }
.optional-note { margin-left:5px; color:var(--ink-soft); font-size:.68rem; font-weight:600; }
.section-comfort-note { margin:0 0 26px; padding:15px 17px; border-left:3px solid var(--brand-bright); background:color-mix(in srgb,var(--brand-bright) 8%,var(--surface)); color:var(--ink-soft); }
.privacy-summary { margin-bottom:24px; padding:22px; border:1px solid var(--line); border-radius:16px; background:var(--surface-2); }
.privacy-summary p { margin:0 0 12px; color:var(--ink-soft); }
.privacy-summary a { color:var(--brand); font-weight:800; text-decoration:underline; text-underline-offset:5px; }
.form-actions .button img { width:25px; height:25px; flex:0 0 auto; object-fit:contain; }
.print-button img { filter:none; }

.visit-quick { position:relative; }
.visit-float { position:fixed; z-index:959; right:24px; bottom:182px; width:58px; height:58px; padding:0; border:0; border-radius:50%; display:grid; place-items:center; overflow:visible; background:var(--brand); color:#fff; box-shadow:0 12px 35px rgba(0,0,0,.25); transition:transform .25s ease,background-color .25s ease; cursor:pointer; }

.visit-float:hover,.visit-float[aria-expanded="true"] { transform:scale(1.08) translateY(-3px); background:var(--brand-bright); }
.visit-float-media { position:absolute; inset:8px; overflow:hidden; border-radius:50%; display:block; }
.visit-float-media img { position:absolute; inset:0; width:100%; height:100%; padding:5px; object-fit:contain; opacity:0; transition:opacity .4s ease,transform .4s ease; }
.visit-float-media .quick-map { filter:brightness(0) invert(1); opacity:1; }
.visit-float-media .quick-sparkle { filter:none; transform:scale(.8); }
.visit-float-label { position:absolute; right:70px; padding:8px 11px; border-radius:8px; background:var(--brand-deep); color:#fff; white-space:nowrap; font-size:.69rem; font-weight:800; letter-spacing:.05em; opacity:0; transform:translateX(8px); pointer-events:none; transition:opacity .2s ease,transform .2s ease; }
.visit-float:hover .visit-float-label,.visit-float:focus-visible .visit-float-label,.visit-float[aria-expanded="true"] .visit-float-label { opacity:1; transform:none; }
.visit-quick-panel { position:absolute; right:76px; bottom:0; width:min(330px,calc(100vw - 112px)); max-height:calc(100dvh - 215px); padding:10px; overflow-y:auto; scrollbar-width:thin; border:1px solid var(--line); border-radius:20px; background:color-mix(in srgb,var(--surface) 94%,transparent); box-shadow:0 24px 70px rgba(0,0,0,.26); backdrop-filter:blur(18px); opacity:0; visibility:hidden; transform:translateX(12px) scale(.96); transform-origin:right bottom; transition:opacity .22s ease,transform .22s ease,visibility .22s; }
.visit-quick.is-open .visit-quick-panel { opacity:1; visibility:visible; transform:none; }
.visit-quick.is-open .visit-float-label { opacity:0; visibility:hidden; }
.visit-quick-panel a { text-decoration:none; }
.quick-event { position:relative; display:flex; flex-direction:column; align-items:center; padding:22px 20px 19px; isolation:isolate; border:1px solid #d2b48e; border-radius:14px; background:radial-gradient(ellipse at 50% 21%,#fffdf8 0%,transparent 65%),linear-gradient(145deg,#f9f1e4,#ead6ba); color:#523724; text-align:center; box-shadow:inset 0 1px 0 #fffaf2,0 5px 16px rgba(89,57,30,.1); transition:border-color .2s,box-shadow .2s; }
.quick-event::before { content:""; position:absolute; z-index:-1; inset:7px; border:1px solid rgba(157,110,61,.3); border-radius:9px; pointer-events:none; }
.quick-event:hover { border-color:#a47446; box-shadow:inset 0 1px 0 #fffaf2,0 8px 22px rgba(89,57,30,.17); }
.quick-event:focus-visible { outline:3px solid #a47446; outline-offset:3px; }
.quick-event[hidden] { display:none; }
.quick-event-icon { width:70px; height:70px; margin:17px auto 9px; display:grid; place-items:center; flex-shrink:0; border:1px solid #ddc3a0; border-radius:50%; background:linear-gradient(145deg,#fffaf1,#f0ddc2); box-shadow:0 3px 12px rgba(105,65,36,.08),inset 0 0 0 5px #faf0e0; }
.quick-event-icon img { width:46px; height:52px; object-fit:contain; }
.quick-event-signature { position:absolute; right:17px; top:14px; width:36px; height:30px; opacity:.72; }
.quick-event-signature img { width:100%; height:100%; object-fit:contain; filter:brightness(0) saturate(100%) invert(30%) sepia(21%) saturate(1045%) hue-rotate(340deg) brightness(95%) contrast(90%); }
.event-promo[hidden],.visit-event-highlight[hidden],.event-jump[hidden] { display:none!important; }
.quick-event-kicker { display:block; align-self:flex-start; max-width:calc(100% - 36px); color:#85613f; font-size:.75rem; font-weight:800; letter-spacing:.07em; line-height:1.5; text-transform:uppercase; text-align:left; }
.quick-event-title { display:block; width:100%; padding:0 .05em .1em; color:#70462f; font-family:"Parisienne",cursive; font-size:clamp(1.75rem,8vw,2.3rem); font-weight:400; line-height:1.13; text-wrap:balance; }
.quick-event-schedule { display:block; width:100%; margin-top:13px; padding:11px 8px 2px; border-top:1px solid #d7bb96; color:#674932; font-size:.875rem; font-weight:650; line-height:1.55; text-wrap:balance; }
.visit-quick.is-open .quick-event-icon { animation:quickEventSealIn .5s cubic-bezier(.22,1,.36,1) both; }
.visit-quick.is-open .quick-event-title { animation:quickEventCopyIn .45s .09s ease-out both; }
.visit-quick.is-open .quick-event-schedule { animation:quickEventCopyIn .45s .16s ease-out both; }
@keyframes quickEventSealIn { from { opacity:0; transform:translateY(5px) scale(.85) rotate(-5deg); } to { opacity:1; transform:none; } }
@keyframes quickEventCopyIn { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:none; } }
@media (max-width:1000px) { .visit-quick-panel { max-height:calc(100dvh - 280px); } }
@media (max-width:360px) { .quick-event { padding-inline:14px; } .quick-event-schedule { padding-inline:0; } }
@media (max-width:560px) and (max-height:640px) {
  .visit-quick-panel { bottom:-60px; max-height:calc(100dvh - 212px); }
  .quick-event { padding-block:15px 12px; }
  .quick-event-icon { width:48px; height:48px; margin:9px auto 5px; }
  .quick-event-icon img { width:32px; height:36px; }
  .quick-event-title { font-size:1.75rem; }
  .quick-event-schedule { margin-top:8px; padding-top:7px; }
}
@media (prefers-reduced-motion:reduce) { .visit-quick.is-open :is(.quick-event-icon,.quick-event-title,.quick-event-schedule) { animation:none; } }
.quick-visit { margin-top:8px; padding:13px 12px; display:flex; align-items:center; gap:12px; border-radius:12px; color:var(--ink); background:var(--surface-2); }
.quick-visit > img { width:30px; height:30px; }
.quick-visit span { display:flex; flex-direction:column; }
.quick-visit strong { font-size:.74rem; }
.quick-visit small { color:var(--ink-soft); font-size:.62rem; }

.legal a { color:inherit; text-decoration:underline; text-underline-offset:4px; }
.privacy-content { background:var(--paper); }
.legal-document { max-width:920px; padding:clamp(32px,6vw,72px); border:1px solid var(--line); border-radius:28px; background:var(--surface); box-shadow:var(--shadow); }
.legal-document h2 { margin:40px 0 12px; font-size:clamp(1.35rem,2.5vw,2rem); }
.legal-document h2:first-of-type { margin-top:20px; }
.legal-document p,.legal-document li { color:var(--ink-soft); }
.legal-document ul { padding-left:24px; }
.legal-document a { color:var(--brand); text-decoration:underline; text-underline-offset:4px; }
.privacy-updated { font-weight:800; }
.privacy-law-note { margin-top:42px; padding-top:24px; border-top:1px solid var(--line); font-size:.75rem; }

@media (min-width:851px) {
  .compact-steps { grid-template-columns:repeat(3,minmax(0,1fr)); max-width:1160px; }
  .compact-steps .step-card:nth-child(1),
  .compact-steps .step-card:nth-child(2),
  .compact-steps .step-card:nth-child(3) { grid-column:auto; min-height:350px; }
  .compact-steps .step-card { align-items:center; justify-content:center; text-align:center; }
  .compact-steps .step-card > a { align-self:center; }
}
.compact-steps .step-icon { width:82px; height:82px; margin-bottom:8px; -webkit-mask-size:44px; mask-size:44px; transition:transform .35s cubic-bezier(.2,.8,.2,1); }
.compact-steps .step-card:is(:hover,:focus-within) .step-icon { animation:step-icon-welcome .75s ease both; }
@keyframes step-icon-welcome { 0%,100%{transform:translateY(0) scale(1)} 45%{transform:translateY(-8px) scale(1.13) rotate(-4deg)} 70%{transform:translateY(-3px) scale(1.08) rotate(3deg)} }

@media (max-width:560px) {
  .band-actions .button { width:100%; justify-content:center; }
  .visit-float { right:24px; bottom:260px; width:56px; height:56px; }
  .visit-float-label { display:none; }
  .legal-document { padding:28px 21px; border-radius:20px; }
  .optional-note { display:block; margin:3px 0 0; }
  .compact-steps .step-card { align-items:center; text-align:center; }
  .compact-steps .step-card > a { align-self:center; }
}

@media (min-width:561px) and (max-width:850px) {
  .visit-float { bottom:246px; }
}

@media print {
  .counseling-page .visit-float { display:none !important; }
}

/* Horarios con una presencia más cálida y accesos flotantes inseparables. */
.utility-rail { position:fixed; z-index:970; right:24px; bottom:112px; display:flex; flex-direction:column; align-items:center; gap:14px; }
.utility-rail:has(.visit-quick.is-open) { z-index:1100; }
.utility-rail .visit-float,
.utility-rail .whatsapp-float { position:relative; inset:auto; right:auto; bottom:auto; flex:0 0 auto; }

.weekly-section { position:relative; overflow:hidden; background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--paper) 82%,var(--brand-bright))); }
.weekly-section::before { content:""; position:absolute; width:430px; height:430px; left:-210px; top:60px; border-radius:50%; background:color-mix(in srgb,var(--brand-bright) 12%,transparent); filter:blur(4px); pointer-events:none; }
.event-jump { color:var(--brand)!important; }
.event-jump::before { content:"✦"; margin-right:7px; color:#b43138; }
.visit-event-highlight { position:relative; min-height:650px; display:flex; align-items:flex-end; overflow:hidden; isolation:isolate; color:#fff; background:#173c2b; }
.visit-event-photo,.visit-event-shade { position:absolute; inset:0; }
.visit-event-photo { z-index:-3; background:url("assets/verified/noche-mexicana-archivo.png?v=4k-20260914") center 45%/cover no-repeat; transform:scale(1.025); animation:eventPhotoDrift 16s cubic-bezier(.22,.61,.36,1) infinite alternate; }
.visit-event-shade { z-index:-2; background:linear-gradient(90deg,rgba(17,52,36,.96),rgba(34,39,27,.72) 53%,rgba(92,27,30,.44)),linear-gradient(0deg,rgba(12,24,17,.78),transparent 62%); }
.visit-event-highlight::after { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:radial-gradient(circle at 16% 25%,rgba(255,255,255,.14) 0 2px,transparent 3px),radial-gradient(circle at 82% 34%,rgba(226,161,63,.32) 0 3px,transparent 4px); background-size:96px 96px,139px 139px; animation:eventSparkle 8s linear infinite; }
.visit-event-content { padding-block:90px; }
.visit-event-content h2 { max-width:740px; margin:5px 0 18px; color:#fff8e8; font-size:clamp(3.8rem,8vw,7.2rem); text-shadow:0 10px 36px rgba(0,0,0,.3); }
.visit-event-content > p:not(.eyebrow) { max-width:700px; color:rgba(255,255,255,.82); }
.visit-event-date { width:max-content; max-width:100%; margin:27px 0 30px; display:flex; align-items:center; gap:24px; }
.visit-event-date strong { padding:18px 25px; border:1px solid rgba(255,255,255,.34); border-radius:999px; background:rgba(83,24,27,.72); box-shadow:0 13px 34px rgba(0,0,0,.2); backdrop-filter:blur(9px); color:#fff; font-size:clamp(1rem,1.65vw,1.25rem); letter-spacing:.06em; text-transform:uppercase; }
.visit-event-date span { color:#f6cb76; font-size:clamp(1.85rem,3.5vw,3rem); font-weight:800; letter-spacing:-.035em; line-height:1; text-shadow:0 8px 28px rgba(0,0,0,.3); }
.event-corner-flag { position:absolute; z-index:2; top:32px; width:150px; height:95px; border:4px solid rgba(255,255,255,.85); border-radius:7px; object-fit:cover; box-shadow:0 16px 35px rgba(0,0,0,.28); transition:transform .75s cubic-bezier(.22,.8,.24,1),filter .75s ease; }
.event-flag-christian { left:clamp(22px,5vw,76px); transform:rotate(-7deg); }
.event-flag-mexico { right:clamp(22px,5vw,76px); transform:rotate(7deg); }
.event-faith-bridge { position:absolute; z-index:3; top:56px; left:50%; width:min(58vw,720px); display:flex; align-items:center; justify-content:center; gap:13px; transform:translateX(-50%); pointer-events:none; }
.bridge-line { flex:1 1 auto; height:2px; opacity:.34; background:repeating-linear-gradient(90deg,rgba(255,245,214,.95) 0 12px,transparent 12px 22px); transform:scaleX(.16); transition:transform .8s cubic-bezier(.22,.8,.24,1),opacity .5s ease,filter .5s ease; }
.bridge-line-left { transform-origin:right center; }
.bridge-line-right { transform-origin:left center; }
.bridge-cross { width:51px; height:51px; flex:0 0 51px; display:grid; place-items:center; border:1px solid rgba(255,244,209,.6); border-radius:50%; background:rgba(57,30,23,.68); box-shadow:0 9px 25px rgba(0,0,0,.25); backdrop-filter:blur(8px); transform:scale(.86); transition:transform .75s cubic-bezier(.22,.8,.24,1),box-shadow .75s ease,background-color .75s ease; }
.bridge-cross img { width:31px; height:31px; filter:brightness(0) invert(1) sepia(.25); }
@media (hover:hover) {
  .visit-event-highlight:hover .bridge-line { opacity:.94; transform:scaleX(1); filter:drop-shadow(0 0 6px rgba(246,204,119,.65)); animation:bridgeDashFlow 1.25s linear infinite; }
  .visit-event-highlight:hover .bridge-cross { transform:scale(1.12) rotate(360deg); background:#71402e; box-shadow:0 0 0 8px rgba(235,189,105,.12),0 0 30px rgba(235,189,105,.55); }
  .visit-event-highlight:hover .event-flag-christian { transform:translateX(12px) rotate(-3deg); filter:brightness(1.08); }
  .visit-event-highlight:hover .event-flag-mexico { transform:translateX(-12px) rotate(3deg); filter:brightness(1.08); }
}
@keyframes bridgeDashFlow { to { background-position:44px 0; } }
@keyframes bridgeMobileLine { 0%,15%,85%,100%{opacity:.28;transform:scaleX(.14)} 38%,62%{opacity:.95;transform:scaleX(1);filter:drop-shadow(0 0 6px rgba(246,204,119,.6))} }
@keyframes bridgeMobileCross { 0%,15%,85%,100%{transform:scale(.86) rotate(0);box-shadow:0 9px 25px rgba(0,0,0,.25)} 42%,62%{transform:scale(1.1) rotate(360deg);box-shadow:0 0 0 7px rgba(235,189,105,.12),0 0 28px rgba(235,189,105,.5)} }
@keyframes flagConnectLeft { 0%,15%,85%,100%{transform:rotate(-7deg)} 40%,62%{transform:translateX(9px) rotate(-3deg)} }
@keyframes flagConnectRight { 0%,15%,85%,100%{transform:rotate(7deg)} 40%,62%{transform:translateX(-9px) rotate(3deg)} }
.event-calendar-link img { width:27px; height:27px; }
.service-schedule-heading { position:relative; max-width:840px; margin-bottom:48px; text-align:center; }
.service-schedule-heading p:not(.eyebrow) { max-width:720px; margin:16px auto 0; color:var(--ink-soft); }
.service-card-grid { position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.service-card { min-width:0; overflow:hidden; border:1px solid var(--line); border-radius:28px; background:var(--surface); box-shadow:0 22px 55px rgba(40,30,22,.11); transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease,border-color .35s ease; }
.service-card:hover { transform:translateY(-9px); border-color:color-mix(in srgb,var(--service-accent) 60%,var(--line)); box-shadow:0 30px 72px rgba(40,30,22,.2); }
.service-morning { --service-accent:#e2a13f; --service-deep:#9d5c22; }
.service-afternoon { --service-accent:#c8733f; --service-deep:#7c3f2c; }
.service-night { --service-accent:#697aa7; --service-deep:#303957; }
.service-visual { min-height:245px; position:relative; isolation:isolate; color:#fff; overflow:hidden; background:var(--service-photo) center 36%/cover no-repeat; }
.service-visual::before,.service-visual::after { content:""; position:absolute; z-index:-1; pointer-events:none; }
.service-visual::before { inset:0; background:linear-gradient(180deg,rgba(19,18,16,.16),rgba(19,18,16,.72)); }
.service-visual::after { display:none; }
.service-morning { --service-photo:url("assets/verified/servicio-domingo-hero-4k.jpg?v=4k-20260914"); }
.service-afternoon { --service-photo:url("assets/verified/servicio-domingo-hero-4k.jpg?v=4k-20260914"); }
.service-night { --service-photo:url("assets/verified/biblia-sin-texto.png?v=4k-20260914"); }
.service-morning .service-visual::before { background:linear-gradient(180deg,rgba(40,29,16,.04),rgba(54,31,13,.68)); }
.service-afternoon .service-visual::before { background:linear-gradient(180deg,rgba(91,43,24,.12),rgba(71,31,19,.76)); }
.service-night .service-visual::before { background:linear-gradient(180deg,rgba(18,25,45,.2),rgba(13,17,31,.78)); }
.service-corner-icon { position:absolute; top:17px; right:17px; width:68px; height:68px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.42); border-radius:18px; background:color-mix(in srgb,var(--service-accent) 88%,transparent); box-shadow:0 13px 30px rgba(0,0,0,.25); backdrop-filter:blur(7px); transform:rotate(8deg); transition:transform .25s cubic-bezier(.2,.8,.2,1); }
.service-corner-icon img { width:38px; height:38px; filter:brightness(0) invert(1); opacity:.98; }
.service-card:hover .service-corner-icon { animation:serviceBadgeWiggle .52s ease both; }
@keyframes serviceBadgeWiggle { 0%,100%{transform:rotate(8deg) scale(1)} 28%{transform:rotate(-7deg) scale(1.12)} 56%{transform:rotate(13deg) scale(1.08)} 78%{transform:rotate(3deg) scale(1.04)} }
.service-card-body { padding:30px; display:flex; flex-direction:column; min-height:350px; }
.service-card-body time { color:var(--service-accent); font-size:.68rem; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.service-card-body h3 { margin:8px 0 14px; font-size:clamp(1.35rem,2vw,1.75rem); line-height:1.08; }
.service-card-body > p { margin:0; color:var(--ink-soft); font-size:.8rem; line-height:1.65; }
.service-time { margin:25px 0 20px; padding-top:18px; border-top:1px solid var(--line); display:flex; align-items:flex-end; justify-content:space-between; gap:15px; }
.service-time small { color:var(--ink-soft); font-size:.63rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.service-time strong { color:var(--ink); font-size:clamp(1.65rem,2.7vw,2.15rem); line-height:1; letter-spacing:-.035em; }
.calendar-add.calendar-google { width:100%; min-height:62px; margin-top:auto; padding:12px 16px; border:1px solid var(--line); border-radius:14px; display:flex; align-items:center; justify-content:flex-start; gap:11px; background:var(--surface-2); color:var(--ink); font-size:.66rem; line-height:1.25; letter-spacing:.055em; text-align:left; box-shadow:0 10px 24px rgba(40,30,22,.07); }
.calendar-add.calendar-google img { width:29px; height:29px; flex:0 0 auto; }
.calendar-add.calendar-google span { margin-left:auto; font-size:1rem; }
.calendar-add.calendar-google:hover { border-color:var(--service-accent); background:color-mix(in srgb,var(--service-accent) 10%,var(--surface)); color:var(--ink); transform:translateY(-3px); }

html[data-theme="dark"] .service-card { box-shadow:0 24px 60px rgba(0,0,0,.28); }
html[data-theme="dark"] .calendar-add.calendar-google { background:color-mix(in srgb,var(--surface-2) 88%,#fff); }

@media (max-width:850px) {
  .utility-rail { bottom:176px; }
  .visit-event-highlight { min-height:690px; }
  .event-corner-flag { width:118px; height:75px; top:26px; }
  .service-card-grid { grid-template-columns:1fr; max-width:680px; }
  .service-card { display:grid; grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr); }
  .service-card-body { min-height:300px; }
}

@media (max-width:560px) {
  .utility-rail { right:16px; bottom:190px; gap:12px; }
  .utility-rail .visit-float,.utility-rail .whatsapp-float { width:56px; height:56px; }
  .visit-quick-panel { right:68px; width:min(300px,calc(100vw - 96px)); }
  .visit-event-highlight { min-height:720px; }
  .visit-event-photo { background-position:58% center; }
  .visit-event-shade { background:linear-gradient(0deg,rgba(12,35,23,.98),rgba(24,47,33,.77) 64%,rgba(82,29,31,.22)); }
  .visit-event-content { padding:175px 0 70px; }
  .visit-event-content h2 { font-size:clamp(3.1rem,16vw,4.9rem); }
  .visit-event-date { width:100%; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; }
  .visit-event-date strong { padding:14px 16px; border-radius:16px; font-size:.78rem; line-height:1.35; }
  .visit-event-date span { font-size:clamp(1.4rem,7vw,1.85rem); white-space:nowrap; }
  .event-corner-flag { width:96px; height:61px; top:34px; border-width:3px; }
  .event-flag-christian { left:18px; }
  .event-flag-mexico { right:18px; }
  .event-faith-bridge { top:43px; width:calc(100% - 194px); min-width:130px; gap:7px; }
  .bridge-cross { width:43px; height:43px; flex-basis:43px; }
  .bridge-cross img { width:27px; height:27px; }
  .service-schedule-heading { margin-bottom:34px; text-align:left; }
  .service-card { display:block; border-radius:23px; }
  .service-visual { min-height:185px; }
  .service-corner-icon { width:58px; height:58px; top:14px; right:14px; }
  .service-corner-icon img { width:32px; height:32px; }
  .service-card-body { min-height:0; padding:25px 22px; }
  .calendar-add.calendar-google { min-height:66px; margin-top:5px; }
}

@media (hover:none), (max-width:700px) {
  .visit-event-highlight .bridge-line { animation:bridgeMobileLine 6.4s ease-in-out infinite; }
  .visit-event-highlight .bridge-cross { animation:bridgeMobileCross 6.4s ease-in-out infinite; }
  .visit-event-highlight .event-flag-christian { animation:flagConnectLeft 6.4s ease-in-out infinite; }
  .visit-event-highlight .event-flag-mexico { animation:flagConnectRight 6.4s ease-in-out infinite; }
}

@media (prefers-reduced-motion:reduce) {
  .visit-float::before,.visit-float-media img,.visit-event-photo,.visit-event-highlight::after,.bridge-line,.bridge-cross,.event-corner-flag { animation:none!important; }
  .visit-float-media .quick-map { opacity:1; }

}

/* Noche de agradecimiento: invitación editorial con fotos reales del encuentro. */
.noche-agradecimiento { min-height:0; padding:clamp(48px,7vw,96px) 0; background:radial-gradient(ellipse at 82% 42%,rgba(145,91,59,.13),transparent 37%),linear-gradient(135deg,#f4e9da,#e9d7c3); color:#38281f; isolation:isolate; }
.noche-agradecimiento .band-shade { z-index:0; background:linear-gradient(125deg,rgba(255,252,245,.32),transparent 54%); }
.event-invitation { position:relative; z-index:1; width:min(1320px,calc(100% - clamp(36px,8vw,128px))); min-height:610px; margin-inline:auto; padding:clamp(25px,4.4vw,64px); display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); align-items:center; gap:clamp(34px,5vw,76px); border:1px solid rgba(255,255,255,.9); border-radius:34px; background:linear-gradient(135deg,#fffaf2,#f8efe3); box-shadow:0 34px 82px rgba(71,47,31,.17),0 5px 18px rgba(71,47,31,.06); }
.noche-agradecimiento .event-invitation-copy { z-index:2; max-width:540px; display:flex; flex-direction:column; align-items:center; text-align:center; }
.event-host { display:inline-flex; align-items:center; gap:11px; max-width:100%; margin:0 0 14px; padding:6px 15px 6px 6px; border:1px solid #dec9b4; border-radius:999px; background:#f4e8d9; color:#604432; text-align:left; }
.event-host-mark { width:44px; height:44px; flex:0 0 44px; display:grid; place-items:center; border-radius:50%; background:#68452f; }
.event-host-mark img { width:33px; height:30px; object-fit:contain; }
.event-host-name { display:grid; gap:2px; }
.event-host-name small { color:#8d664d; font-size:.63rem; font-weight:750; letter-spacing:.12em; line-height:1.2; text-transform:uppercase; }
.event-host-name strong { color:#4b3428; font-size:.8rem; line-height:1.25; }
.event-logo-title { width:100%; display:grid; justify-items:center; }
.event-intro { display:none; position:absolute; z-index:4; pointer-events:none; }
.event-emblem-assembly { position:relative; display:block; width:clamp(112px,11.5vw,145px); aspect-ratio:1; }
.event-emblem { position:relative; z-index:1; display:block; width:100%; height:100%; object-fit:contain; }
.event-emblem-fragment,.event-repair-fill { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.event-emblem-fragment { z-index:2; opacity:0; background:url("assets/evento/noche-agradecimiento-vasija-2026.png") center/contain no-repeat; }
.event-emblem-left { clip-path:polygon(0 0,57.3% 0,57.3% 11%,58.5% 16%,56% 22%,54% 29%,56.5% 35%,59% 40%,57% 44%,53% 47%,51% 51%,54% 58%,58% 64%,60% 70%,59% 75%,54% 82%,49% 89%,47% 93%,48% 100%,0 100%); transform-origin:76% 55%; }
.event-emblem-right { clip-path:polygon(57.3% 0,100% 0,100% 100%,48% 100%,47% 93%,49% 89%,54% 82%,59% 75%,60% 70%,58% 64%,54% 58%,51% 51%,53% 47%,57% 44%,59% 40%,56.5% 35%,54% 29%,56% 22%,58.5% 16%,57.3% 11%); transform-origin:27% 55%; }
/* El relleno sigue los dos huecos reales y queda debajo de la cerámica, también en reposo. */
.event-repair-fill { z-index:0; fill:#d8ae76; }
.event-title-lead,.event-title-name { display:block; }
.noche-agradecimiento .event-invitation-copy .eyebrow { margin:0 0 18px; color:#95613e; font-size:.7rem; letter-spacing:.17em; }
.noche-agradecimiento :is(.event-invitation-copy,.event-intro) h2 { width:calc(100% + 2.4rem); max-width:none; margin:-3px -1.2rem 0; padding:.1em .08em .18em; overflow:visible; color:#39271e; font-family:"Parisienne",cursive; font-size:clamp(3.55rem,5.7vw,5.2rem); font-weight:400; letter-spacing:0; line-height:1.14; text-align:center; }
.noche-agradecimiento :is(.event-invitation-copy,.event-intro) h2 em { color:#9b6742; font-style:normal; font-weight:400; }
.noche-agradecimiento .band-content > .event-promo-description { max-width:450px; margin:23px auto 0; color:#665247; font-size:clamp(.98rem,1.22vw,1.08rem); line-height:1.75; text-align:center; }
.event-verse { max-width:450px; margin:15px auto 0; padding:0; border:0; color:#815338; text-align:center; }
.event-verse p { margin:0; font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(1.12rem,1.55vw,1.34rem); font-style:italic; line-height:1.22; }
.event-verse cite { display:block; margin-top:6px; font-family:"Manrope",sans-serif; font-size:.78rem; font-style:normal; font-weight:700; letter-spacing:.06em; }
.event-verse cite a { color:#815338; text-decoration-color:#c7a381; text-underline-offset:3px; }
.event-verse cite a:hover { color:#5f3c28; }
.noche-agradecimiento .event-promo-meta { width:max-content; max-width:100%; margin:22px auto 26px; padding:15px 23px 15px 15px; display:flex; align-items:center; justify-content:center; gap:18px; border:1px solid #dcc2a8; border-radius:20px; background:#f1e2d0; color:#49352a; font-size:.96rem; letter-spacing:0; line-height:1.45; text-align:left; text-transform:none; box-shadow:0 12px 28px rgba(75,48,31,.11); }
.noche-agradecimiento .event-promo-meta::before { display:none; }
.event-date-stamp { width:68px; flex:0 0 68px; aspect-ratio:1; display:flex; flex-direction:column; align-items:center; justify-content:center; border-radius:15px; background:#815338; color:#fff7e9; line-height:1; }
.event-date-stamp b { font-family:"Cormorant Garamond",Georgia,serif; font-size:2rem; font-weight:600; }
.event-date-stamp small { margin-top:5px; font-size:.66rem; font-weight:800; letter-spacing:.16em; }
.noche-agradecimiento .event-promo-meta time { display:grid; gap:4px; }
.noche-agradecimiento .event-promo-meta time span { color:#755f50; font-size:.88rem; }
.noche-agradecimiento .event-promo-meta time b { color:#49352a; font-size:1.02rem; }
.noche-agradecimiento .band-actions { justify-content:center; }
.noche-agradecimiento .band-actions .button { min-width:255px; min-height:56px; gap:11px; border-radius:999px; background:#815338; color:#fffaf1; box-shadow:0 10px 25px rgba(85,53,32,.18); }
.noche-agradecimiento .band-actions .button:hover { background:#68412d; box-shadow:0 15px 32px rgba(85,53,32,.24); }
.noche-agradecimiento .band-actions .button span { font-size:1.05rem; }
.noche-agradecimiento .band-actions .button img { width:27px; height:27px; padding:3px; border-radius:6px; background:#fff; object-fit:contain; }
.event-invitation-visual { position:relative; min-width:0; min-height:540px; margin:0; overflow:hidden; aspect-ratio:.91; border:10px solid #fffdf8; border-radius:23px; background:#c6ad93; box-shadow:0 24px 58px rgba(58,37,23,.2),0 3px 10px rgba(58,37,23,.08); isolation:isolate; }
.noche-agradecimiento .event-photo-reel { inset:0; z-index:0; border:0; border-radius:0; box-shadow:none; background:#c6ad93!important; }

/* La invitación comienza vacía; la vasija se reúne, deja entrar el título y viaja a su lugar. */
.noche-agradecimiento.event-motion-ready .event-intro { display:block; transform:translate(var(--intro-shift-x),var(--intro-shift-y)); }
.noche-agradecimiento.event-motion-ready .event-invitation-copy > :is(.event-host,.event-logo-title,.event-promo-description,.event-verse,.event-promo-meta,.band-actions),
.noche-agradecimiento.event-motion-ready .event-invitation-visual { opacity:0; }
.noche-agradecimiento.event-motion-ready .event-intro .event-emblem { opacity:0; }
.noche-agradecimiento.event-motion-ready .event-intro .event-repair-fill { clip-path:inset(0 0 100% 0); }
.noche-agradecimiento.event-motion-ready .event-intro .event-emblem-assembly { --event-vase-start-scale:2.25; transform:scale(var(--event-vase-start-scale)); }
.noche-agradecimiento.event-motion-ready .event-intro :is(.event-title-lead,.event-title-name) { opacity:0; }
.noche-agradecimiento.event-motion-ready.event-in-view .event-intro { animation:eventIntroMove .9s 4.5s cubic-bezier(.22,1,.36,1) both,eventIntroFade .22s 5.35s ease-out forwards; }
.noche-agradecimiento.event-motion-ready.event-in-view .event-intro .event-emblem-assembly { animation:eventVaseShrink .7s 2.95s cubic-bezier(.22,1,.36,1) both; }
.noche-agradecimiento.event-motion-ready.event-in-view .event-intro .event-emblem { animation:eventWholeVase .001s 2.32s step-end forwards; }
.noche-agradecimiento.event-motion-ready.event-in-view .event-intro .event-emblem-left { animation:eventFragmentLeft 2.05s .18s cubic-bezier(.22,1,.36,1) both,eventFragmentsRetire .001s 2.32s step-end forwards; }
.noche-agradecimiento.event-motion-ready.event-in-view .event-intro .event-emblem-right { animation:eventFragmentRight 2.05s .27s cubic-bezier(.22,1,.36,1) both,eventFragmentsRetire .001s 2.32s step-end forwards; }
.noche-agradecimiento.event-motion-ready.event-in-view .event-intro .event-repair-fill { animation:eventRepairFill 1.3s 2.34s ease-in-out both; }
.noche-agradecimiento.event-motion-ready.event-in-view .event-intro .event-title-lead { animation:eventGentleRise .55s 3.55s both; }
.noche-agradecimiento.event-motion-ready.event-in-view .event-intro .event-title-name { animation:eventNameTrace .9s 3.7s cubic-bezier(.25,.8,.25,1) both; }
.noche-agradecimiento.event-motion-ready.event-in-view .event-invitation-copy > .event-logo-title { animation:eventLogoHandoff .22s 5.35s both; }
.noche-agradecimiento.event-motion-ready.event-in-view .event-host { animation:eventGentleRise .5s 5.45s both; }
.noche-agradecimiento.event-motion-ready.event-in-view .event-promo-description { animation:eventGentleRise .55s 5.5s both; }
.noche-agradecimiento.event-motion-ready.event-in-view .event-verse { animation:eventGentleRise .55s 5.65s both; }
.noche-agradecimiento.event-motion-ready.event-in-view .event-promo-meta { animation:eventGentleRise .55s 5.8s both; }
.noche-agradecimiento.event-motion-ready.event-in-view .band-actions { animation:eventGentleRise .55s 5.95s both; }
.noche-agradecimiento.event-motion-ready.event-in-view .event-invitation-visual { animation:eventPhotoArrive .9s 6.15s cubic-bezier(.22,1,.36,1) both; }
@keyframes eventFragmentLeft { 0% { opacity:0; transform:translate(-34px,-14px) rotate(-12deg); } 24%,42% { opacity:1; transform:translate(-34px,-14px) rotate(-12deg); } 100% { opacity:1; transform:none; } }
@keyframes eventFragmentRight { 0% { opacity:0; transform:translate(37px,17px) rotate(10deg); } 24%,42% { opacity:1; transform:translate(37px,17px) rotate(10deg); } 100% { opacity:1; transform:none; } }
@keyframes eventRepairFill { from { clip-path:inset(0 0 89% 0); } to { clip-path:inset(0); } }
@keyframes eventWholeVase { to { opacity:1; } }
@keyframes eventFragmentsRetire { to { opacity:0; } }
@keyframes eventLogoHandoff { from { opacity:0; } to { opacity:1; } }
@keyframes eventVaseShrink { from { transform:scale(var(--event-vase-start-scale)); } to { transform:scale(1); } }
@keyframes eventIntroMove { from { transform:translate(var(--intro-shift-x),var(--intro-shift-y)); } to { transform:translate(0,0); } }
@keyframes eventIntroFade { to { opacity:0; visibility:hidden; } }
@keyframes eventNameTrace { from { opacity:0; clip-path:inset(-.35em 100% -.35em -.35em); transform:translateY(8px); } to { opacity:1; clip-path:inset(-.35em -.35em -.35em -.35em); transform:none; } }
@keyframes eventGentleRise { from { opacity:0; transform:translateY(15px); } to { opacity:1; transform:none; } }
@keyframes eventPhotoArrive { from { opacity:0; transform:translateY(26px) scale(.96); } to { opacity:1; transform:none; } }
@media (max-width:1000px) {
  .noche-agradecimiento { padding:48px 0; }
  .event-invitation { width:min(760px,calc(100% - 40px)); grid-template-columns:1fr; gap:28px; padding:22px; }
  .event-invitation-visual { min-height:0; aspect-ratio:1.24; }
  .noche-agradecimiento .event-invitation-copy { max-width:none; padding:0 9px 8px; }
  .noche-agradecimiento :is(.event-invitation-copy,.event-intro) h2 { font-size:clamp(3.6rem,8.6vw,5.2rem); }
  .noche-agradecimiento .band-content > .event-promo-description { max-width:620px; }
}
@media (max-width:560px) {
  .noche-agradecimiento { padding:28px 0 38px; }
  .event-invitation { width:calc(100% - 28px); gap:20px; padding:12px; border-radius:24px; }
  .event-invitation-visual { aspect-ratio:1.15; border-width:7px; border-radius:17px; }
  .noche-agradecimiento .event-invitation-copy { padding:0 8px 10px; }
  .event-host { gap:9px; padding-right:11px; }
  .event-host-mark { width:40px; height:40px; flex-basis:40px; }
  .event-host-name strong { font-size:.72rem; }
  .event-emblem-assembly { width:108px; }
  .noche-agradecimiento.event-motion-ready .event-intro .event-emblem-assembly { --event-vase-start-scale:1.9; }
  .noche-agradecimiento .event-invitation-copy .eyebrow { margin-bottom:11px; font-size:.61rem; }
  .noche-agradecimiento :is(.event-invitation-copy,.event-intro) h2 { font-size:clamp(2.8rem,10.4vw,3.5rem); line-height:1.14; }
  .noche-agradecimiento .band-content > .event-promo-description { margin-top:16px; font-size:.94rem; line-height:1.65; }
  .noche-agradecimiento .event-promo-meta { width:100%; margin:18px 0; padding:11px 14px 11px 11px; gap:13px; border-radius:15px; }
  .event-date-stamp { width:56px; flex-basis:56px; border-radius:11px; }
  .event-date-stamp b { font-size:1.65rem; }
  .event-date-stamp small { font-size:.57rem; }
  .noche-agradecimiento .event-promo-meta time span { font-size:.76rem; }
  .noche-agradecimiento .event-promo-meta time b { font-size:.92rem; }
  .noche-agradecimiento .band-actions .button { width:100%; min-width:0; justify-content:center; }
}
@media (prefers-reduced-motion:reduce) {
  .noche-agradecimiento .event-intro { display:none!important; }
  .noche-agradecimiento.event-motion-ready .event-invitation-copy > :is(.event-host,.event-logo-title,.event-promo-description,.event-verse,.event-promo-meta,.band-actions),
  .noche-agradecimiento.event-motion-ready .event-invitation-visual { opacity:1!important; transform:none!important; animation:none!important; }
}

/* Centrado real de todo el contenido en las tres tarjetas de siguiente paso. */
.compact-steps .step-card {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:44px 34px;
  text-align:center;
}
.compact-steps .step-card > .step-icon { margin:0 auto 24px; }
.compact-steps .step-card h3 { width:100%; margin:0 0 14px; text-align:center; }
.compact-steps .step-card p { width:100%; max-width:285px; margin:0 auto; text-align:center; }
.compact-steps .step-card > a { margin:28px auto 0; align-self:center; text-align:center; }
.compact-steps .step-card.reveal.visible:is(:hover,:focus-within) > a { transform:none; }

@media (max-width:560px) {
  .compact-steps .step-card { min-height:330px; padding:38px 26px; }
}

/* Secuencias fotográficas 2026: cada cambio es un fundido cruzado real. */
.hero-photo-story { z-index:0; isolation:isolate; background:none; transform:none; animation:none; overflow:hidden; }
.hero-photo-story > span { position:absolute; inset:-2%; opacity:0; z-index:0; background:var(--hero-photo) center/cover no-repeat; transform:scale(1.025); transition:opacity 1.8s cubic-bezier(.4,0,.2,1),transform 8.5s ease-out; will-change:opacity,transform; }
.hero-photo-story > span.is-active { opacity:1; transform:scale(1.09) translate3d(-.6%,-.4%,0); }
.hero-photo-story > span.is-incoming { z-index:2; }

.visual-tour,.visit-photo-route { position:relative; background:linear-gradient(145deg,var(--paper),color-mix(in srgb,var(--surface) 84%,var(--brand-bright))); }
.visual-tour { padding:clamp(42px,6vw,86px) 0; }
.visual-tour-heading { max-width:780px; margin-bottom:28px; }
.visual-tour-heading h2 { margin-bottom:14px; font-size:clamp(2.8rem,5.8vw,5.5rem); }
.visual-tour-heading > p:last-child { margin:0; color:var(--ink-soft); font-size:1.08rem; }
.visit-photo-route { padding:clamp(75px,9vw,125px) 0 0; }
.scroll-journey { overflow:visible; }
.journey-track { position:relative; width:min(1440px,calc(100% - 44px)); height:165vh; margin-inline:auto; }
.journey-stage { position:sticky; top:96px; height:min(76vh,800px); min-height:540px; overflow:hidden; border-radius:34px; background:#211d19; box-shadow:0 32px 85px rgba(40,30,22,.2); isolation:isolate; }
.journey-photos,.journey-photos::after { position:absolute; inset:0; }
.journey-photos::after { content:""; z-index:3; background:linear-gradient(180deg,rgba(12,11,10,.03),rgba(12,11,10,.22)); pointer-events:none; }
.journey-photos img { position:absolute; inset:-2%; width:104%; height:104%; object-fit:cover; opacity:0; transform:scale(1.035); transition:opacity 1.35s cubic-bezier(.4,0,.2,1),transform 4.2s ease-out; will-change:opacity,transform; }
.journey-photos img.is-active { opacity:1; transform:scale(1.075); }
.journey-photos img.is-incoming { z-index:2; }
.journey-copy { position:absolute; z-index:5; left:50%; bottom:68px; width:min(780px,calc(100% - 120px)); min-height:3.2em; color:#fff; text-align:center; pointer-events:none; text-shadow:0 3px 22px rgba(0,0,0,.58); transform:translateX(-50%); }
.journey-copy p { position:absolute; left:0; bottom:0; width:100%; margin:0; font-family:var(--font-display,Georgia,serif); font-size:clamp(1.5rem,2.8vw,2.65rem); font-weight:600; line-height:1.12; opacity:0; transform:translateY(12px); transition:opacity .5s ease,transform .5s ease; }
.journey-copy p.is-active { opacity:1; transform:translateY(0); }
.journey-progress { position:absolute; z-index:6; left:clamp(24px,5vw,64px); right:clamp(24px,5vw,64px); bottom:24px; display:grid; grid-template-columns:repeat(4,1fr); gap:9px; }
.journey-progress i { height:3px; overflow:hidden; border-radius:99px; background:rgba(255,255,255,.28); }
.journey-progress i::after { content:""; display:block; width:100%; height:100%; background:#efc578; transform:scaleX(0); transform-origin:left; transition:transform .7s ease; }
.journey-progress i.is-active::after { transform:scaleX(1); }
.journey-nav { position:absolute; z-index:7; top:0; bottom:0; width:50%; border:0; padding:0; display:flex; align-items:center; background:transparent; color:#fff; cursor:pointer; opacity:0; transition:background .25s ease,opacity .25s ease; }
.journey-nav span { width:52px; height:52px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.6); border-radius:50%; background:rgba(15,12,10,.3); backdrop-filter:blur(8px); font-family:Georgia,serif; font-size:2.7rem; font-weight:300; line-height:1; transform:translateY(-2px); }
.journey-nav-prev { left:0; justify-content:flex-start; padding-left:clamp(18px,4vw,64px); }
.journey-nav-next { right:0; justify-content:flex-end; padding-right:clamp(18px,4vw,64px); }
.journey-stage:hover .journey-nav, .journey-nav:focus-visible { opacity:1; }
.journey-nav:hover { background:linear-gradient(90deg,rgba(0,0,0,.2),transparent 42%); }
.journey-nav-next:hover { background:linear-gradient(270deg,rgba(0,0,0,.2),transparent 42%); }
.journey-nav:focus-visible { outline:3px solid #efc578; outline-offset:-6px; }

/* Galería animada del evento; conserva el texto legible sobre varias memorias reales. */
.noche-mexicana { min-height:820px; }
.event-photo-reel { isolation:isolate; overflow:hidden; background:none!important; transform:none!important; animation:none!important; }
.event-photo-reel img { position:absolute; inset:-2%; width:104%; height:104%; object-fit:cover; opacity:0; z-index:0; transform:scale(1.025); transition:opacity 1.8s cubic-bezier(.4,0,.2,1),transform 8s ease-out; will-change:opacity,transform; }
.event-photo-reel img.is-active { opacity:1; transform:scale(1.09) translate3d(.6%,-.4%,0); }
.event-photo-reel img.is-incoming { z-index:2; }
.noche-mexicana .event-photo-reel { inset:36px 36px 36px 54%; z-index:1; border-radius:32px; box-shadow:0 32px 80px rgba(7,20,13,.4); }
.noche-mexicana .band-shade { z-index:0; background:radial-gradient(circle at 18% 18%,rgba(229,176,84,.16),transparent 33%),linear-gradient(120deg,#123b29 0%,#173c2b 58%,#66292d 100%); }
.noche-mexicana .band-content { width:min(1360px,calc(100% - clamp(72px,12vw,240px))); max-width:none; margin-left:clamp(36px,6vw,120px); margin-right:clamp(36px,6vw,120px); padding-right:57%; }
.noche-mexicana .band-content > p:not(.eyebrow) { max-width:500px; }
.noche-mexicana .band-actions .button { min-width:260px; }
.visit-event-highlight { min-height:740px; }
.visit-event-shade { background:linear-gradient(90deg,rgba(13,44,30,.98),rgba(30,38,26,.78) 53%,rgba(92,27,30,.34)),linear-gradient(0deg,rgba(12,24,17,.8),transparent 62%); }
.service-morning { --service-photo:url("assets/actual-2026/servicio-principal.jpeg?v=4k-20260914"); }
.service-afternoon { --service-photo:url("assets/actual-2026/ministerios-congregacion.jpeg?v=4k-20260914"); }
.service-night { --service-photo:url("assets/actual-2026/alabanza-teclado.jpeg?v=4k-20260914"); }
.dark-section::before { background:radial-gradient(circle at 70% 15%,rgba(217,154,69,.17),transparent 35%),linear-gradient(rgba(28,27,24,.78),rgba(28,27,24,.92)),url("assets/hero-iglesia.jpeg?v=4k-20260914") center 46%/cover; }

@media (max-width:1000px) {
  .journey-track { height:175vh; }
  .journey-stage { top:86px; height:68vh; min-height:480px; border-radius:28px; }
  .noche-mexicana .event-photo-reel { inset:0; z-index:0; border-radius:0; box-shadow:none; }
  .noche-mexicana .band-shade { z-index:1; background:linear-gradient(0deg,rgba(14,33,23,.98) 0%,rgba(20,42,30,.82) 52%,rgba(44,20,20,.28) 100%); }
  .noche-mexicana .band-content { padding-right:0; }
}

@media (max-width:560px) {
  .hero-content h1 { font-size:clamp(3rem,13vw,4rem); }
  .journey-track { width:100%; height:185vh; }
  .journey-stage { top:78px; height:65vh; min-height:430px; border-radius:0; }
  .journey-progress { bottom:20px; }
  .journey-copy { bottom:62px; width:calc(100% - 92px); min-height:3.8em; }
  .journey-nav { opacity:1; }
  .journey-nav span { width:44px; height:44px; font-size:2.25rem; }
  .visit-event-highlight,.noche-mexicana { min-height:760px; }
  .event-photo-reel img { object-position:58% center; }
}

@media (prefers-reduced-motion:reduce) {
  .hero-photo-story > span,.event-photo-reel img,.journey-photos img,.journey-copy p { transition:none!important; transform:none; }
}

/* Invitación principal y ambiente cálido. */
.compact-steps .featured-step {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  border:2px solid var(--brand-bright);
  background:linear-gradient(145deg,color-mix(in srgb,var(--brand-bright) 22%,var(--surface)),color-mix(in srgb,var(--brand) 12%,var(--surface-2)));
  box-shadow:0 28px 68px rgba(95,61,43,.2);
}
.compact-steps .featured-step::before {
  content:"";
  position:absolute;
  z-index:-1;
  width:230px;
  height:230px;
  top:-130px;
  right:-95px;
  border-radius:50%;
  background:color-mix(in srgb,var(--brand-bright) 25%,transparent);
}
.compact-steps .featured-step.reveal.visible { transform:translateY(-12px); }
.compact-steps .featured-step.reveal.visible:is(:hover,:focus-within) { transform:translateY(-18px); }
.compact-steps .featured-step > .step-invitation {
  position:absolute;
  top:20px;
  left:50%;
  width:auto;
  height:auto;
  padding:7px 13px;
  border:1px solid color-mix(in srgb,var(--brand) 30%,transparent);
  border-radius:999px;
  background:var(--brand);
  color:#fff8ef;
  font-size:.62rem;
  font-weight:850;
  letter-spacing:.1em;
  line-height:1.2;
  text-transform:uppercase;
  white-space:nowrap;
  transform:translateX(-50%);
}
.compact-steps .featured-step .step-icon { width:92px; height:92px; background-color:var(--brand-deep); }
html[data-theme="dark"] .compact-steps .featured-step {
  background:linear-gradient(145deg,color-mix(in srgb,var(--brand-bright) 18%,var(--surface)),color-mix(in srgb,var(--brand-deep) 34%,var(--surface-2)));
  box-shadow:0 30px 75px rgba(0,0,0,.38);
}

@media (max-width:560px) {
  .compact-steps .featured-step.reveal.visible { transform:none; }
  .compact-steps .featured-step.reveal.visible:is(:hover,:focus-within) { transform:translateY(-6px); }
  .compact-steps .featured-step > .step-invitation { top:16px; }
}

@media (prefers-reduced-motion:reduce) {
  .compact-steps .featured-step.reveal.visible,
  .compact-steps .featured-step.reveal.visible:is(:hover,:focus-within) { transform:none; }
}

/* Ritmo de lectura y tarjetas proporcionadas. */
h2 { font-size:clamp(2rem,4vw,3.6rem); line-height:1.12; }
.page-hero h1 { font-size:clamp(2.7rem,6.5vw,5.6rem); line-height:1.1; }
.eyebrow { font-size:.875rem; letter-spacing:.13em; margin-bottom:14px; }
.button, .text-link { font-size:.875rem; letter-spacing:.07em; }
.hero-content h1 em { color:#faf9f6; -webkit-text-stroke:0; }
.hero-lead { max-width:620px; }
.hero { min-height:max(680px,100svh); }
.hero-content { padding-bottom:135px; }
.reveal { transform:translateY(16px); transition:opacity .45s ease,transform .45s ease; }
.reveal.delay-1 { transition-delay:.08s; }
.reveal.delay-2 { transition-delay:.16s; }
.page-section-header, .conviction-heading, .form-heading { margin-bottom:36px; }
.registration-copy h2 { font-size:clamp(2rem,4vw,3.6rem); }
.registration-layout { gap:clamp(28px,5vw,64px); }
.registration-form small { font-size:.875rem; line-height:1.65; }
.registration-form label, .contact-form label, .section-jump-nav a, .opening-list strong { font-size:.875rem; }
.ministry-grid.confirmed-ministries { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; align-items:start; }
.ministry-grid.confirmed-ministries > article { grid-column:auto; min-height:0; }
.confirmed-ministries .ministry-photo-slot { aspect-ratio:4/3; height:auto; }
.confirmed-ministries .ministry-photo-slot img { width:100%; height:100%; object-fit:cover; }
.confirmed-ministries .ministry-card-copy { padding:22px 24px; }
.confirmed-ministries .ministry-card-copy h3 { margin:0; font-size:1.35rem; line-height:1.25; }
.confirmed-ministries .ministry-card-copy p { margin:10px 0 0; font-size:1rem; line-height:1.6; }
.confirmed-ministries .ministry-calendar-link { display:inline-flex; gap:8px; align-items:center; margin-top:16px; color:var(--brand); font-size:.875rem; letter-spacing:0; text-transform:none; text-decoration:underline; text-underline-offset:4px; line-height:1.5; }
.contact-form[hidden], .ministry-confirmation[hidden], .registration-form .ministry-consent[hidden], .registration-form .counseling-verification[hidden], .registration-form .ministry-whatsapp[hidden] { display:none; }
.registration-form .ministry-consent { grid-column:1/-1; display:flex; align-items:flex-start; gap:10px; line-height:1.6; font-weight:400; }
.registration-form .ministry-consent[hidden] { display:none !important; }
.registration-form .ministry-consent input { flex:0 0 auto; width:18px; margin-top:3px; accent-color:var(--brand); }
.registration-form .ministry-consent a { color:inherit; text-underline-offset:3px; }
.registration-form .counseling-verification, .ministry-form-status, .ministry-whatsapp { grid-column:1/-1; }
.ministry-form-status { margin:0; line-height:1.6; }
.registration-form[aria-busy="true"] [data-ministry-submit] { cursor:wait; opacity:.8; }
.ministry-confirmation { padding:36px; border-radius:var(--radius); background:var(--paper); color:var(--ink); animation:ministry-confirmation-in .5s ease both; }
.ministry-confirmation h3 { font-size:clamp(1.6rem,3vw,2.15rem); line-height:1.2; margin:16px 0; }
.ministry-confirmation > p:not(.eyebrow) { color:var(--ink-soft); line-height:1.7; margin-bottom:24px; }
.ministry-confirmation-mark { display:grid; place-items:center; width:56px; height:56px; margin-bottom:24px; border-radius:50%; background:var(--surface-2); color:var(--brand); font-size:1.75rem; }
@keyframes ministry-confirmation-in { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion:reduce) { .ministry-confirmation { animation:none; } }
.doctrine-books { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; isolation:isolate; }
.doctrine-book, .doctrine-book[aria-expanded="true"] { height:380px; min-height:380px; grid-column:auto; z-index:1; }
.book-cover { width:calc(100% - 18px); min-height:260px; padding:24px; }
.book-cover h3 { font-size:clamp(1.2rem,2.2vw,1.75rem); margin:16px 0; }
.book-hint { font-size:.875rem; letter-spacing:.06em; }
.doctrine-book:nth-child(1) { --spread-left:0%; --spread-shift:0%; --spread-origin:18%; }
.doctrine-book:nth-child(2) { --spread-left:50%; --spread-shift:-50%; --spread-origin:50%; }
.doctrine-book:nth-child(3) { --spread-left:100%; --spread-shift:-100%; --spread-origin:82%; }
.book-spread, .doctrine-book[aria-expanded="true"] .book-spread { position:absolute; inset:auto; top:50%; left:var(--spread-left); width:min(960px,calc(300% + 48px)); height:auto; min-height:340px; margin:0; transform:translate(var(--spread-shift),-50%) scaleX(.34); transform-origin:var(--spread-origin) center; visibility:hidden; transition:opacity .32s ease, transform .55s cubic-bezier(.2,.8,.2,1), visibility 0s .55s; }
.doctrine-book[aria-expanded="true"] { z-index:5; }
.doctrine-book[aria-expanded="true"] .book-spread { transform:translate(var(--spread-shift),-50%) scaleX(1); visibility:visible; transition-delay:0s; }
.book-cover { transition:opacity .34s ease, transform .55s cubic-bezier(.2,.8,.2,1), filter .35s ease; }
.doctrine-books.has-open-book .doctrine-book[aria-expanded="false"] .book-cover { filter:blur(3px); opacity:.42; }
.doctrine-book:focus-visible .book-spread { outline:2px solid var(--brand-bright); outline-offset:6px; border-radius:20px; }
.book-page { padding:32px; }
.book-page p, .book-page .book-passage { font-size:1rem; }
.book-version { font-size:.75rem; }
.social-hub-heading h2 { max-width:none; }
.social-channel { min-height:110px; }
.social-channel span { font-size:1rem; }
.social-channel b { font-size:.875rem; letter-spacing:.03em; }
.compact-steps .featured-step.reveal.visible { transform:none; }
.compact-steps .featured-step.reveal.visible:is(:hover,:focus-within) { transform:translateY(-6px); }
.compact-steps .step-card, .compact-steps .step-card.featured-step { min-height:0; padding:32px; }
.compact-steps .step-card p { font-size:1rem; }
.compact-steps .step-card > a { font-size:.875rem; }
.compact-steps { grid-template-columns:repeat(3,minmax(0,1fr)); }
.compact-steps .step-card:nth-child(n) { grid-column:auto; }
.service-schedule-heading { margin-bottom:36px; }
.weekly-section, .opening-section, .calendar-experience, .counseling-form-section { padding-block:clamp(56px,6vw,88px); }
.service-card-body { min-height:0; padding:26px; }
.service-card-body h3 { margin:0 0 16px; font-size:1.5rem; line-height:1.2; }
.service-card-body > p { font-size:1rem; line-height:1.65; }
.service-time { margin-top:24px; }
.contact-whatsapp { display:inline-flex; align-items:center; gap:10px; text-decoration:underline; text-underline-offset:5px; }
.contact-whatsapp img { flex:none; }
.live-video, .live-video iframe { min-height:0; aspect-ratio:16/9; }
.live-placeholder { min-height:0; padding:28px; }
.live-placeholder strong { font-size:clamp(1.2rem,2vw,1.65rem); }
.live-copy { padding:clamp(24px,3vw,40px); }
.live-copy h3 { font-size:clamp(1.5rem,2.3vw,2rem); }
.calendar-frame-top p { font-size:.875rem; color:#d8cdbf; }
.calendar-live-dot { display:none; }
.constitution-chapter { padding:0 0 24px; }
.doctrine-index-panel { position:sticky; top:108px; }
.doctrine-index-panel > summary { display:none; }
.doctrine-index-panel .doctrine-index { position:static; }
.doctrine-index a { font-size:.875rem; }
.doctrine-body h3 { font-size:1.2rem; }
.privacy-summary { margin-bottom:32px; padding:22px 26px; border-left:3px solid var(--brand); background:var(--surface-2); }
.privacy-summary p:last-child { margin-bottom:0; }
.privacy-summary a { overflow-wrap:anywhere; }
.privacy-page, .counseling-page { padding-bottom:0; }
:is(.privacy-page,.counseling-page) .utility-rail { display:none; }
.service-grid { min-height:78px; }
.service-title #next-service-time, .service-grid p { font-size:.875rem; letter-spacing:.03em; }
.service-title strong, .service-grid > div strong { font-size:.95rem; }
.countdown { gap:14px; }
.countdown small { font-size:.75rem; }
.desktop-nav { gap:18px; }
.desktop-nav a { font-size:.875rem; letter-spacing:.05em; }
@media (min-width:851px) and (max-width:1100px) {
  .desktop-nav a { font-size:.8rem; letter-spacing:.03em; }
  .desktop-nav { gap:13px; }
}
@media (max-width:850px) {
  .ministry-grid.confirmed-ministries { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
  .doctrine-books { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .doctrine-index-panel { position:static; }
  .doctrine-index-panel > summary { display:block; padding:16px 20px; border:1px solid var(--line); border-radius:12px; color:var(--ink); font-weight:700; cursor:pointer; }
  .doctrine-index-panel .doctrine-index { margin-top:10px; max-height:none; }
  .hero { min-height:max(620px,100svh); }
}
@media (max-width:560px) {
  .ministry-grid.confirmed-ministries { grid-template-columns:1fr; }
  .compact-steps { grid-template-columns:1fr; }
  .section { padding-block:56px; }
  .hero-content { padding-top:145px; padding-bottom:150px; }
  .doctrine-books { grid-template-columns:1fr; }
  .doctrine-book, .doctrine-book[aria-expanded="true"] { height:380px; min-height:380px; }
  .doctrine-book:nth-child(n) { --spread-left:50%; --spread-shift:-50%; --spread-origin:50%; }
  .book-cover { width:calc(100% - 22px); height:320px; min-height:320px; padding:24px; }
  .book-cover h3 { font-size:1.75rem; }
  .book-spread, .doctrine-book[aria-expanded="true"] .book-spread { width:100%; height:min(520px,calc(100svh - 220px)); min-height:320px; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .book-spread::after { left:calc(50% - 4px); right:auto; top:8px; bottom:8px; width:8px; height:auto; background:linear-gradient(90deg,rgba(0,0,0,.15),transparent 50%,rgba(0,0,0,.12)); }
  .book-page { height:100%; min-height:0; padding:20px 14px; transform:none; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:var(--brand) transparent; }
  .book-page-left { border-radius:18px 4px 4px 18px; }
  .book-page-right { border-radius:4px 18px 18px 4px; }
  .book-page h3 { font-size:1.2rem; }
  .book-page h4 { font-size:1.1rem; }
  .book-page p, .book-page .book-passage { font-size:.875rem; line-height:1.6; }
  .book-version { font-size:.7rem; }
  .service-card-body { padding:24px; }
  body:not(.privacy-page):not(.counseling-page) { padding-bottom:128px; }
  .service-bar .service-grid { min-height:0; padding-block:10px; grid-template-columns:1fr; gap:8px; }
  .service-bar .service-title { grid-column:1; justify-self:center; text-align:center; padding:0; }
  .service-grid p, .service-bar .countdown { display:none; }
  .service-bar .service-actions { grid-column:1; grid-row:2; justify-self:center; padding:0; }
  .service-bar .service-actions .button { min-height:38px; padding-inline:16px; font-size:.875rem; }
  .service-title #next-service-time { font-size:.875rem; }
  .utility-rail { bottom:138px; }
  .live-video { aspect-ratio:auto; min-height:250px; }
  .live-video iframe { aspect-ratio:16/9; }
}
@media (prefers-reduced-motion:reduce) {
  .reveal, .reveal.visible { opacity:1; transform:none; transition:none; }
  .compact-steps .featured-step.reveal.visible:is(:hover,:focus-within) { transform:none; }
  .book-cover, .book-spread, .doctrine-book[aria-expanded="true"] .book-spread { transition:none; }
}

/* Verificación discreta junto al envío de consejería. */
.counseling-verification { margin-top:22px; max-width:360px; color:var(--ink-soft); }
.counseling-verification-state { display:flex; align-items:center; gap:9px; margin:0 0 10px; font-size:.875rem; line-height:1.5; }
.counseling-verification-state > span:first-child { flex:0 0 8px; width:8px; height:8px; border-radius:50%; background:var(--brand); transition:background .25s; }
.counseling-verification[data-state="checking"] .counseling-verification-state > span:first-child { animation:verification-breathe 1.8s ease-in-out infinite; }
.counseling-verification[data-state="ready"] .counseling-verification-state > span:first-child { background:#578569; }
.counseling-verification[data-state="error"] .counseling-verification-state > span:first-child { background:#b76650; }
.counseling-verification-retry { padding:8px 0; border:0; background:transparent; color:var(--brand); font:inherit; font-size:.875rem; text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.counseling-verification-retry[hidden] { display:none; }
.counseling-verification-retry:focus-visible { outline:2px solid var(--brand); outline-offset:4px; }
@keyframes verification-breathe { 0%,100% { opacity:.5; } 50% { opacity:1; } }
@media (prefers-reduced-motion:reduce) { .counseling-verification-state > span:first-child { animation:none !important; transition:none; } }

/* Visítanos: invitación principal dentro de la fila de próximos pasos. */
.compact-steps .step-card.featured-step {
  --visit-ink:#fff8ed;
  --visit-soft:#f0decb;
  --visit-accent:#e9c180;
  --visit-border:rgba(239,195,124,.65);
  --visit-glow:rgba(246,200,129,.14);
  --visit-button:#efc77f;
  --visit-button-ink:#38251b;
  padding:38px 30px;
  border:1px solid var(--visit-border);
  background:linear-gradient(145deg,#754d35,#4c3024);
  color:var(--visit-ink);
  box-shadow:0 22px 48px rgba(86,52,32,.22),inset 0 1px 0 rgba(255,239,204,.14);
}
.compact-steps .featured-step::before {
  inset:-110px -70px auto auto;
  width:300px;
  height:300px;
  background:radial-gradient(circle,var(--visit-glow),transparent 70%);
  pointer-events:none;
}
.compact-steps .featured-step::after {
  content:"";
  position:absolute;
  inset:-50% -75%;
  z-index:-1;
  background:linear-gradient(110deg,transparent 43%,var(--visit-glow) 50%,transparent 57%);
  transform:translateX(-45%);
  opacity:0;
  pointer-events:none;
}
.compact-steps .featured-step.reveal.visible::after { animation:visit-welcome-light 1.8s .3s ease-out both; }
.compact-steps .featured-step .step-icon {
  width:96px;
  height:96px;
  background-color:var(--visit-accent);
  -webkit-mask-size:54px;
  mask-size:54px;
}
.compact-steps .featured-step h3 { color:var(--visit-ink); font-size:clamp(1.8rem,2.6vw,2.2rem); line-height:1.2; }
.compact-steps .featured-step p { color:var(--visit-soft); }
.compact-steps .featured-step > .visit-card-action {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  max-width:100%;
  padding:12px 16px 12px 20px;
  border-radius:999px;
  background:var(--visit-button);
  color:var(--visit-button-ink);
  font-size:.875rem;
  letter-spacing:.035em;
  line-height:1.4;
  box-shadow:0 6px 18px rgba(26,15,9,.14);
  transition:background .25s,box-shadow .25s;
}
.visit-card-action > span {
  display:grid;
  place-items:center;
  flex:0 0 27px;
  width:27px;
  height:27px;
  border-radius:50%;
  background:rgba(61,38,24,.1);
  font-size:1.2rem;
  transition:transform .3s ease;
}
.compact-steps .featured-step.reveal.visible:is(:hover,:focus-within) {
  border-color:var(--visit-accent);
  box-shadow:0 28px 58px rgba(86,52,32,.28),inset 0 1px 0 rgba(255,239,204,.2);
}
.featured-step:is(:hover,:focus-within) .visit-card-action > span { transform:translateX(3px); }
.compact-steps .featured-step:focus-visible, .visit-card-action:focus-visible { outline:3px solid var(--visit-accent); outline-offset:5px; }
html[data-theme="dark"] .compact-steps .step-card.featured-step {
  --visit-ink:#39291e;
  --visit-soft:#5f4430;
  --visit-accent:#6d442b;
  --visit-border:rgba(246,210,157,.75);
  --visit-glow:rgba(255,249,224,.26);
  --visit-button:#63422e;
  --visit-button-ink:#fff5e6;
  background:linear-gradient(145deg,#edcc98,#dab079);
  box-shadow:0 22px 48px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,247,220,.45);
}
html[data-theme="dark"] .featured-step .visit-card-action > span { background:rgba(255,245,230,.12); }
html[data-theme="dark"] .compact-steps .featured-step.reveal.visible:is(:hover,:focus-within) { box-shadow:0 28px 58px rgba(0,0,0,.42); }
@media (min-width:851px) {
  .compact-steps { grid-template-columns:1fr 1.18fr 1fr; align-items:center; }
  .compact-steps .step-card.featured-step { padding-block:42px; }
  .compact-steps .featured-step.reveal.visible { transform:translateY(-6px); }
  .compact-steps .featured-step.reveal.visible:is(:hover,:focus-within) { transform:translateY(-10px); }
}
@media (max-width:850px) and (min-width:561px) {
  .compact-steps .step-card { padding-inline:20px; }
  .compact-steps .featured-step > .visit-card-action { gap:8px; padding-inline:12px; font-size:.8rem; }
}
@keyframes visit-welcome-light {
  0% { opacity:0; transform:translateX(-45%); }
  35% { opacity:1; }
  100% { opacity:0; transform:translateX(45%); }
}
@media (prefers-reduced-motion:reduce) {
  .compact-steps .featured-step::after { animation:none !important; }
  .compact-steps .featured-step.reveal.visible,
  .compact-steps .featured-step.reveal.visible:is(:hover,:focus-within),
  .featured-step:is(:hover,:focus-within) .visit-card-action > span { transform:none; }
  .visit-card-action > span { transition:none; }
}

/* The invitation and next meeting share one fixed, clipped track. */
.service-bar { overflow:hidden; }
.dock-track { display:flex; align-items:stretch; width:100%; transition:none; }
.service-bar.has-event-announcement.dock-animated .dock-track { transition:transform .9s cubic-bezier(.65,0,.35,1); }
.dock-service-panel,.dock-event-panel { flex:0 0 100%; min-width:0; }
.dock-event-panel[hidden] { display:none; }
.service-bar.has-event-announcement:not(.has-event-preview) .dock-track { transform:translateX(-100%); }
.dock-service-panel { display:flex; align-items:center; }
.dock-event-panel { background:linear-gradient(110deg,#faf1e4,#ead4b6); color:#62432e; }
.dock-event-content { min-height:78px; height:100%; display:grid; grid-template-columns:50px minmax(0,1fr) auto auto 32px; align-items:center; gap:20px; padding-block:12px; }
.dock-event-emblem { width:50px; height:50px; display:grid; place-items:center; border:1px solid #d9b98f; border-radius:50%; background:#fff8ed; }
.dock-event-emblem img { width:38px; height:44px; object-fit:contain; }
.dock-event-copy { min-width:0; display:grid; gap:3px; }
.dock-event-copy small { color:#80583c; font-size:.875rem; font-weight:700; line-height:1.3; }
.dock-event-copy strong { font-family:"Manrope",sans-serif; font-size:clamp(1rem,1.7vw,1.35rem); font-weight:750; line-height:1.3; letter-spacing:-.025em; }
.dock-event-details { display:grid; gap:2px; font-size:.875rem; font-weight:600; line-height:1.35; }
.dock-event-button { min-height:44px; padding:10px 18px; border-radius:999px; background:#68432f; color:#fff7e9; font-size:.875rem; letter-spacing:.03em; line-height:1.3; text-align:center; }
.dock-event-button:hover { background:#503223; }
.dock-event-close { width:32px; height:32px; padding:0; border:1px solid #c9aa86; border-radius:50%; background:transparent; color:#62432e; font-size:1.5rem; line-height:1; cursor:pointer; }
.dock-event-close:hover { background:#e3ceb0; }
.dock-event-button:focus-visible,.dock-event-close:focus-visible { outline:3px solid #a47446; outline-offset:3px; }
.visit-float.is-event { background:#f5e6d1; border:1px solid #d6b18a; color:#68432f; box-shadow:0 10px 28px rgba(44,28,19,.24),0 0 0 4px rgba(245,230,209,.12); }
.visit-float.is-event:is(:hover,[aria-expanded="true"]) { background:#fff4e2; }
.visit-float.is-event .quick-map { opacity:0; transform:scale(.8); }
.visit-float.is-event .quick-sparkle { opacity:1; transform:scale(1); }
.visit-float.is-event .visit-float-label { background:#f5e6d1; color:#68432f; }
.noche-agradecimiento :is(.event-invitation-copy,.event-intro) h2 .event-title-year { display:block; margin-top:-.04em; font-family:inherit; font-size:.72em; font-weight:400; line-height:1.05; letter-spacing:0; color:#9b6742; }
.noche-agradecimiento.event-motion-ready .event-intro .event-title-year { opacity:0; }
.noche-agradecimiento.event-motion-ready.event-in-view .event-intro .event-title-year { animation:eventGentleRise .55s 4s both; }
@media (max-width:1000px) and (min-width:561px) {
  .dock-event-content { grid-template-columns:46px minmax(0,1fr) auto 32px; gap:14px; }
  .dock-event-copy small { display:none; }
  .dock-event-details { grid-column:2; grid-row:2; }
  .dock-event-emblem { grid-row:1 / 3; }
  .dock-event-button,.dock-event-close { grid-row:1 / 3; }
}
@media (max-width:560px) {
  .dock-event-content { width:calc(100% - 28px); grid-template-columns:36px minmax(0,1fr) auto 28px; gap:6px 10px; padding-block:10px; }
  .dock-event-emblem { width:36px; height:36px; }
  .dock-event-emblem img { width:29px; height:32px; }
  .dock-event-copy { grid-column:2 / 4; }
  .dock-event-copy small { display:none; }
  .dock-event-copy strong { font-size:1rem; }
  .dock-event-close { grid-column:4; grid-row:1; width:28px; height:28px; }
  .dock-event-details { grid-column:1 / 3; grid-row:2; font-size:.875rem; }
  .dock-event-button { grid-column:3 / 5; grid-row:2; min-height:38px; padding:9px 12px; max-width:145px; }
}
@media (prefers-reduced-motion:reduce) {
  .service-bar.has-event-announcement.dock-animated .dock-track,.visit-float-media img { transition:none; }
  .noche-agradecimiento.event-motion-ready.event-in-view .event-intro .event-title-year { animation:none; }
}

/* Preview, save, or share the same invitation without leaving the event. */
.noche-agradecimiento .band-actions { gap:10px; }
.noche-agradecimiento .band-actions .button { min-width:0; padding-inline:22px; }
.noche-agradecimiento .band-actions .event-share-open { border:1px solid #a47959; background:transparent; color:#68432f; box-shadow:none; }
.noche-agradecimiento .band-actions .event-share-open:hover { background:#f1e2d0; color:#503223; }
.event-share-open svg { flex:none; }
.event-share-dialog { width:min(940px,calc(100% - 28px)); max-height:calc(100dvh - 36px); padding:34px; border:1px solid var(--line); border-radius:26px; background:var(--surface); color:var(--ink); box-shadow:var(--shadow); overflow:auto; }
.event-share-dialog::backdrop { background:rgba(26,18,13,.72); backdrop-filter:blur(5px); }
.event-share-close { position:absolute; top:14px; right:14px; width:36px; height:36px; border:1px solid var(--line); border-radius:50%; background:var(--surface-2); color:var(--ink); font-size:1.6rem; cursor:pointer; }
.event-share-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:30px; align-items:center; }
.event-share-poster { width:100%; height:auto; border-radius:16px; border:1px solid #d7bc97; box-shadow:0 10px 30px rgba(50,31,19,.1); }
.event-share-preview { display:block; text-align:center; color:var(--ink); text-decoration:none; }
.event-share-preview span { display:block; margin-top:12px; font-size:.875rem; text-decoration:underline; text-underline-offset:4px; }
.event-share-copy { min-width:0; padding-block:16px; }
.event-share-copy h2 { margin:0 0 12px; font-size:clamp(1.6rem,3vw,2.1rem); line-height:1.2; }
.event-share-copy > p { margin:0 0 20px; font-size:1rem; line-height:1.6; color:var(--ink-soft); }
.event-share-message { padding:16px 18px; border:1px solid var(--line); border-radius:14px; background:var(--surface-2); }
.event-share-message summary { cursor:pointer; font-size:.875rem; font-weight:650; line-height:1.5; }
.event-share-message[open] p { margin-top:14px; }
.event-share-message p { margin:0; font-size:.875rem; line-height:1.55; white-space:pre-line; overflow-wrap:anywhere; }
.event-share-actions { margin-top:18px; display:grid; gap:10px; }
.event-share-actions .button { min-height:48px; padding:12px 18px; border-radius:999px; font-size:.875rem; letter-spacing:.035em; text-align:center; }
.event-share-actions [hidden] { display:none; }
.event-share-download { border:1px solid var(--line); color:var(--ink); background:var(--surface-2); }
.event-share-pdf { border:1px solid #b58b66; color:var(--ink); background:transparent; }
.event-share-copy-button { justify-self:center; border:0; padding:10px; background:transparent; color:var(--ink); font-size:.875rem; font-weight:700; text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.event-share-copy > .event-share-status { margin:8px 0 0; font-size:.875rem; }
.event-share-status:empty { display:none; }
.event-share-dialog :is(button,a):focus-visible { outline:3px solid var(--brand-bright); outline-offset:3px; }
.event-share-dialog[open] .event-share-layout { animation:eventGentleRise .3s ease both; }
@media (max-width:650px) {
  .event-share-dialog { padding:54px 20px 22px; border-radius:22px; }
  .event-share-layout { grid-template-columns:minmax(0,1fr); gap:20px; }
  .event-share-poster { width:min(100%,320px); justify-self:center; }
  .event-share-preview { justify-self:center; }
  .event-share-copy { padding:0; }
}
@media (prefers-reduced-motion:reduce) {
  .event-share-dialog[open] .event-share-layout { animation:none; }
}

/* A quiet continuation of the service schedule. */
.schedule-calendar {
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:22px;
  margin-top:26px;
  padding:26px 30px;
  border:1px solid var(--line);
  border-left:3px solid var(--brand-bright);
  border-radius:22px;
  background:linear-gradient(110deg,var(--surface-2),var(--surface));
}
.schedule-calendar-icon {
  display:grid;
  place-items:center;
  width:64px;
  height:64px;
  border-radius:50%;
  background:color-mix(in srgb,var(--brand-bright) 17%,var(--surface));
  color:var(--brand);
}
.schedule-calendar-copy { min-width:0; }
.schedule-calendar-copy h3 { margin:0 0 8px; font-size:clamp(1.25rem,2vw,1.5rem); line-height:1.3; letter-spacing:-.025em; }
.schedule-calendar-copy p { margin:0; max-width:58ch; color:var(--ink-soft); font-size:1rem; line-height:1.6; }
.schedule-calendar-button {
  min-height:50px;
  padding:14px 22px;
  border-radius:999px;
  background:#68432f;
  color:#fff6e8;
  font-size:.875rem;
  line-height:1.4;
  letter-spacing:.035em;
  white-space:normal;
  text-align:center;
}
.schedule-calendar-button:hover { background:#503223; box-shadow:0 6px 18px rgba(57,34,22,.16); transform:translateY(-2px); }
.schedule-calendar-button:focus-visible { outline:3px solid var(--brand-bright); outline-offset:4px; }
html[data-theme="dark"] .schedule-calendar-button { background:#ebc487; color:#37251b; }
html[data-theme="dark"] .schedule-calendar-button:hover { background:#f5d6a4; }
@media (max-width:850px) {
  .schedule-calendar { max-width:680px; grid-template-columns:auto minmax(0,1fr); gap:16px 20px; padding:24px; }
  .schedule-calendar-button { grid-column:2; justify-self:start; }
}
@media (max-width:560px) {
  .schedule-calendar { gap:16px; padding:22px; border-radius:20px; }
  .schedule-calendar-icon { width:48px; height:48px; align-self:start; }
  .schedule-calendar-icon svg { width:26px; height:26px; }
  .schedule-calendar-button { grid-column:1 / -1; justify-self:stretch; }
}
@media (prefers-reduced-motion:reduce) {
  .schedule-calendar-button { transition:none; }
  .schedule-calendar-button:hover { transform:none; }
}

/* Fotografía real aprobada: conservar sus detalles y ajustar solo presentación. */
.mission-card.beliefs-photo::before { z-index:1; background:linear-gradient(0deg,rgba(18,16,14,.96) 0%,rgba(18,16,14,.7) 33%,rgba(18,16,14,.16) 64%,rgba(18,16,14,.015) 100%); transform:none; }
.mission-card.beliefs-photo > .beliefs-photo-image { position:absolute; inset:0; z-index:0; width:100%; height:100%; object-fit:cover; object-position:50% 74%; transform:scale(1.045); filter:brightness(1.08) contrast(1.025) saturate(.94) sepia(.08); transition:transform .7s; }
.mission-card.beliefs-photo > :not(.beliefs-photo-image) { z-index:2; }
.mission-card.beliefs-photo p { color:rgba(255,255,255,.86); }
.mission-card.beliefs-photo:hover > .beliefs-photo-image { transform:scale(1.105); }
@media (prefers-reduced-motion:reduce) { .mission-card.beliefs-photo > .beliefs-photo-image { transition:none; } .mission-card.beliefs-photo:hover > .beliefs-photo-image { transform:scale(1.045); } }

/* Encuadre de la congregación en Quiénes somos. */
.mission-card.about-photo::before { background-position:center,center 60%; }
