:root {
    --ink: #20231f;
    --ink-soft: #2b302a;
    --forest: #27352e;
    --forest-deep: #1e2924;
    --ivory: #f4efe5;
    --ivory-soft: #ebe4d8;
    --paper: #fbf8f2;
    --sand: #d8cbbb;
    --stone: #8b857b;
    --clay: #9d5139;
    --clay-deep: #7d3f2d;

    --sans: "Instrument Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --serif: "Newsreader", Georgia, serif;

    --shell: min(100% - 48px, 1440px);
    --header-height: 84px;
    --section-space: clamp(96px, 10vw, 168px);
    --ease: cubic-bezier(.2,.7,.2,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--paper); }
body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: var(--sans);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
body, a, button { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
button, input { font: inherit; }
.shell { width: var(--shell); margin-inline: auto; }
.section-light { background: var(--paper); }

.skip-link {
    position: fixed;
    z-index: 1000;
    left: 12px;
    top: 12px;
    padding: 10px 14px;
    background: var(--ink);
    color: var(--paper);
    transform: translateY(-160%);
}
.skip-link:focus { transform: translateY(0); }

.site-header {
    position: absolute;
    z-index: 30;
    inset: 0 0 auto;
    height: var(--header-height);
    color: var(--ink);
}
.header-inner {
    height: 100%;
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    gap: 24px;
    border-bottom: 1px solid rgba(32,35,31,.14);
}
.wordmark {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    flex: 0 0 auto;
}
.wordmark-logo {
    display: block;
    width: 370px;
    height: auto;
    max-width: min(245px, 38vw);
    object-fit: contain;
}
.header-nav {
    display: flex;
    align-items: center;
    gap: 28px;
}
.header-nav > a {
    font-size: 11px;
    font-weight: 650;
    letter-spacing: .08em;
    text-decoration: none;
    text-transform: uppercase;
}
.header-nav > a:not(.header-cta) { color: var(--stone); }
.header-nav > a:not(.header-cta):hover,
.header-nav > a:not(.header-cta):focus-visible { color: var(--ink); }
.header-cta {
    color: var(--ink);
    border-bottom: 1px solid var(--clay);
    padding-block: 5px;
}

.hero {
    position: relative;
    min-height: 100svh;
    overflow: clip;
    background: var(--paper);
    color: var(--ink);
    padding: calc(var(--header-height) + 48px) 0 32px;
}
.hero::before {
    content: "";
    position: absolute;
    width: min(52vw, 760px);
    aspect-ratio: 1;
    right: -20vw;
    top: -26vw;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(157,81,57,.10), rgba(157,81,57,0) 67%);
    pointer-events: none;
}
.hero::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(32,35,31,.035) 1px, transparent 1px) 0 0 / 25% 100%;
    mask-image: linear-gradient(to bottom, black 0%, transparent 72%);
}
.hero-grid {
    position: relative;
    z-index: 1;
    min-height: calc(100svh - var(--header-height) - 122px);
    display: grid;
    grid-template-columns: minmax(0, 1.13fr) minmax(360px, .87fr);
    gap: clamp(48px, 6vw, 104px);
    align-items: center;
}
.hero-copy {
    max-width: 860px;
    padding-block: 32px;
}
.eyebrow,
.micro-label {
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--stone);
}
.eyebrow { margin-bottom: 28px; }
.eyebrow::before,
.micro-label::before {
    content: "";
    width: 34px;
    height: 2px;
    background: var(--clay);
}
.hero-title {
    margin: 0;
    max-width: 800px;
    font-size: clamp(68px, 7.7vw, 128px);
    line-height: .84;
    letter-spacing: -.067em;
    font-weight: 650;
    text-transform: uppercase;
}
.hero-title span { display: block; }
.hero-title span:last-child {
    margin-left: clamp(18px, 5.2vw, 76px);
    color: var(--clay-deep);
}
.hero-call {
    max-width: 590px;
    margin: 34px 0 0;
    font-size: clamp(24px, 2.25vw, 36px);
    line-height: 1.12;
    font-weight: 430;
    letter-spacing: -.035em;
    color: #3c4039;
}
.hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 20px 50px;
    margin-top: 38px;
    padding-top: 22px;
    border-top: 1px solid rgba(32,35,31,.14);
}
.hero-meta p {
    margin: 0;
    display: grid;
    gap: 4px;
}
.hero-meta strong {
    font-size: 14px;
    letter-spacing: .03em;
}
.hero-meta span {
    color: var(--stone);
    font-size: 13px;
}
.hero-actions { margin-top: 34px; }
.button {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    min-height: 60px;
    padding: 0 22px;
    border: 0;
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    transition: transform .25s var(--ease), background-color .25s var(--ease), color .25s var(--ease);
}
.button-primary {
    min-width: 255px;
    background: var(--ink);
    color: var(--paper);
}
.button-primary:hover,
.button-primary:focus-visible {
    transform: translateY(-2px);
    background: var(--forest);
}
.hero-thesis {
    max-width: 610px;
    margin: 46px 0 0;
    color: var(--stone);
    font-size: clamp(14px, 1vw, 17px);
    line-height: 1.55;
}
.hero-thesis strong {
    color: var(--ink);
    font-weight: 650;
}
.hero-media {
    margin: 0;
    min-height: 620px;
    padding-block: 12px 32px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.media-placeholder {
    position: relative;
    min-height: clamp(500px, 66vh, 760px);
    background:
        linear-gradient(155deg, rgba(251,248,242,.14), transparent 35%),
        linear-gradient(180deg, #d9cbb9 0%, #c9b4a2 58%, #aa7f69 100%);
    overflow: hidden;
}
.media-placeholder::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 68% 22%, rgba(255,246,226,.65), transparent 26%),
        linear-gradient(to top, rgba(32,35,31,.34), transparent 45%);
}
.media-placeholder::after {
    content: "FOTOGRAFÍA REAL";
    position: absolute;
    right: -36px;
    top: 50%;
    transform: rotate(90deg) translateX(50%);
    transform-origin: right center;
    color: rgba(32,35,31,.30);
    font-size: 9px;
    letter-spacing: .24em;
}
.media-placeholder > div {
    position: absolute;
    z-index: 2;
    left: 24px;
    right: 24px;
    bottom: 24px;
    display: grid;
    gap: 7px;
    max-width: 310px;
    color: var(--paper);
}
.media-placeholder span,
.media-placeholder small,
.hero-media figcaption {
    font-size: 10px;
    line-height: 1.45;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.media-placeholder span,
.media-placeholder small { color: rgba(251,248,242,.72); }
.media-placeholder strong {
    font-size: 16px;
    letter-spacing: .02em;
}
.hero-media figcaption {
    margin-top: 12px;
    color: var(--stone);
    text-align: right;
}
.hero-footer {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    padding-top: 22px;
    border-top: 1px solid rgba(32,35,31,.14);
    color: var(--stone);
    font-size: 10px;
    letter-spacing: .13em;
    text-transform: uppercase;
}
.hero-footer span:nth-child(2) { text-align: center; }
.hero-footer span:nth-child(3) { text-align: right; }

/* 02 — Convocatoria */
.manifesto {
    position: relative;
    overflow: hidden;
    background: var(--forest);
    color: var(--paper);
    padding: clamp(104px, 13vw, 210px) 0;
}
.manifesto::after {
    content: "ALTAR";
    position: absolute;
    right: -1vw;
    bottom: -4vw;
    color: rgba(244,239,229,.035);
    font-size: clamp(150px, 24vw, 420px);
    line-height: .7;
    font-weight: 650;
    letter-spacing: -.08em;
    pointer-events: none;
}
.manifesto-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 3fr;
    gap: 40px;
}
.section-index {
    margin: 9px 0 0;
    color: rgba(244,239,229,.55);
    font-size: 10px;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.section-index.dark { color: var(--clay-deep); }
.manifesto-kicker {
    margin: 0 0 14px;
    font-family: var(--serif);
    font-size: clamp(22px, 3vw, 46px);
    color: #d6c7b8;
}
.manifesto h2 {
    max-width: 980px;
    margin: 0;
    font-size: clamp(42px, 5.2vw, 76px);
    line-height: .86;
    letter-spacing: -.067em;
    font-weight: 620;
    text-transform: uppercase;
}
.convocation { padding: var(--section-space) 0; }
.convocation-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(320px, .72fr);
    gap: clamp(54px, 8vw, 130px);
    align-items: start;
}
.convocation-lead h2 {
    max-width: 900px;
    margin: 34px 0 0;
    font-size: clamp(36px, 3.7vw, 58px);
    line-height: .98;
    letter-spacing: -.055em;
    font-weight: 520;
}
.convocation-lead h2 em,
.foundation-content h2 em,
.experience-title h2 em {
    color: var(--clay-deep);
    font-family: var(--serif);
    font-weight: 400;
}
.convocation-copy {
    padding-top: 40px;
    border-top: 1px solid rgba(32,35,31,.15);
}
.convocation-copy p {
    margin: 0 0 24px;
    color: #4e514b;
    font-size: clamp(17px, 1.3vw, 21px);
    line-height: 1.55;
}
.convocation-copy .statement-line {
    margin-top: 50px;
    color: var(--ink);
    font-weight: 650;
    letter-spacing: -.02em;
}

/* 03 — Fundamento */
.foundation {
    background: var(--ivory);
    color: var(--ink);
    padding: var(--section-space) 0;
    border-block: 1px solid rgba(32,35,31,.10);
}
.foundation-grid {
    display: grid;
    grid-template-columns: .8fr 2.2fr;
    gap: clamp(48px, 7vw, 120px);
}
.foundation-ref {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding-top: 8px;
}
.foundation-ref span {
    margin-bottom: 22px;
    color: var(--clay-deep);
    font-size: 10px;
    letter-spacing: .14em;
}
.foundation-ref strong {
    font-size: 13px;
    letter-spacing: .08em;
}
.foundation-pre {
    margin: 0 0 22px;
    color: var(--stone);
    font-family: var(--serif);
    font-size: clamp(22px, 2.4vw, 36px);
}
.foundation-content h2 {
    max-width: 980px;
    margin: 0;
    font-size: clamp(40px, 4.5vw, 70px);
    line-height: .89;
    letter-spacing: -.065em;
    text-transform: uppercase;
    font-weight: 620;
}
.foundation-content h2 em {
    display: inline-block;
    text-transform: none;
}
.foundation-text {
    max-width: 840px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 38px;
    margin-top: 52px;
    padding-top: 34px;
    border-top: 1px solid rgba(32,35,31,.14);
}
.foundation-text p {
    margin: 0;
    color: #55574f;
    font-size: 16px;
    line-height: 1.65;
}

/* 04 — Llamado */
.calling {
    background: var(--paper);
    padding: var(--section-space) 0;
}
.section-head {
    display: grid;
    grid-template-columns: .8fr 2.2fr;
    gap: clamp(48px, 7vw, 120px);
    margin-bottom: 68px;
}
.section-head h2 {
    max-width: 900px;
    margin: 0;
    font-size: clamp(36px, 3.6vw, 56px);
    line-height: .96;
    letter-spacing: -.055em;
    font-weight: 520;
}
.calling-list { border-top: 1px solid rgba(32,35,31,.16); }
.calling-row {
    display: grid;
    grid-template-columns: 80px minmax(0, 1fr) 180px;
    align-items: baseline;
    gap: 28px;
    padding: clamp(34px, 4vw, 58px) 0;
    border-bottom: 1px solid rgba(32,35,31,.16);
}
.calling-number {
    color: var(--stone);
    font-size: 11px;
    letter-spacing: .14em;
}
.calling-row h3 {
    margin: 0;
    font-size: clamp(30px, 3.8vw, 58px);
    line-height: .9;
    letter-spacing: -.06em;
    font-weight: 570;
    text-transform: uppercase;
}
.calling-row p {
    margin: 0;
    color: var(--clay-deep);
    font-family: var(--serif);
    font-size: clamp(24px, 2.4vw, 38px);
}

/* 05 — Ministros */
.ministers {
    padding: var(--section-space) 0;
    border-top: 1px solid rgba(32,35,31,.10);
}
.split-head {
    grid-template-columns: minmax(0, 1.6fr) minmax(300px, .7fr);
    align-items: end;
}
.split-head > div { display: grid; grid-template-columns: .45fr 1.55fr; gap: 36px; }
.section-intro {
    margin: 0;
    color: var(--stone);
    font-size: 15px;
    line-height: 1.6;
}
.minister-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}
.minister-card {
    display: grid;
    grid-template-columns: minmax(0, .92fr) minmax(280px, 1.08fr);
    min-height: 540px;
    border: 1px solid rgba(32,35,31,.14);
    background: var(--paper);
}
.minister-figure {
    margin: 0;
    position: relative;
    min-height: 100%;
    overflow: hidden;
    background: linear-gradient(180deg, #d9cbb9 0%, #b18a75 100%);
}
.minister-figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.minister-figure::after {
    content: "FOTOGRAFÍA OFICIAL";
    position: absolute;
    left: 18px;
    bottom: 18px;
    color: rgba(251,248,242,.76);
    font-size: 9px;
    letter-spacing: .14em;
    text-transform: uppercase;
    padding: 8px 10px;
    background: rgba(32,35,31,.28);
    backdrop-filter: blur(8px);
}
.minister-figure-dark::after { background: rgba(15,18,16,.42); }
.minister-card-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(28px, 4vw, 50px);
    background: var(--ivory);
}
.minister-label {
    color: var(--clay-deep);
    margin-bottom: 18px;
    font-size: 10px;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.minister-card-copy h3 {
    margin: 0;
    font-size: clamp(26px, 2.5vw, 40px);
    line-height: .98;
    letter-spacing: -.04em;
    font-weight: 560;
}
.minister-origin {
    margin: 12px 0 0;
    color: var(--ink);
    font-family: var(--serif);
    font-size: clamp(18px, 1.7vw, 26px);
    line-height: 1.15;
}
.minister-card-copy p:last-child {
    margin: 18px 0 0;
    color: var(--stone);
    line-height: 1.6;
}

/* 06 — Experiencia */
.experience {
    background: var(--forest);
    color: var(--paper);
    padding: var(--section-space) 0;
}
.experience-grid {
    display: grid;
    grid-template-columns: minmax(340px, .98fr) minmax(320px, .82fr);
    gap: clamp(60px, 9vw, 150px);
}
.experience-title h2 {
    margin: 28px 0 0;
    font-size: clamp(36px, 3.9vw, 62px);
    line-height: .9;
    letter-spacing: -.06em;
    text-transform: uppercase;
    font-weight: 600;
}
.experience-title h2 em {
    display: block;
    margin-top: 16px;
    color: #d8c3b4;
    text-transform: none;
    font-size: .58em;
    letter-spacing: -.035em;
}
.experience-list { border-top: 1px solid rgba(244,239,229,.17); }
.experience-row {
    display: grid;
    grid-template-columns: 46px 180px 1fr;
    gap: 22px;
    align-items: baseline;
    padding: 28px 0;
    border-bottom: 1px solid rgba(244,239,229,.17);
}
.experience-row span {
    color: rgba(244,239,229,.45);
    font-size: 10px;
    letter-spacing: .12em;
}
.experience-row strong {
    font-size: 23px;
    font-weight: 530;
}
.experience-row p {
    margin: 0;
    color: rgba(244,239,229,.65);
    font-size: 14px;
    line-height: 1.5;
}

/* 07 — Agenda */
.agenda { padding: var(--section-space) 0; }
.agenda-grid {
    display: grid;
    grid-template-columns: minmax(300px, .82fr) minmax(0, 1.18fr);
    gap: clamp(60px, 9vw, 150px);
}
.agenda-heading h2,
.location-copy h2,
.registration-copy h2,
.faq-heading h2,
.organizer-copy h2 {
    margin: 26px 0 0;
    font-size: clamp(36px, 3.7vw, 58px);
    line-height: .93;
    letter-spacing: -.058em;
    font-weight: 540;
}
.agenda-heading > p:last-child {
    max-width: 430px;
    margin: 28px 0 0;
    color: var(--stone);
    line-height: 1.6;
}
.agenda-lines { border-top: 1px solid rgba(32,35,31,.16); }
.agenda-line {
    display: grid;
    grid-template-columns: 110px 1fr 125px;
    gap: 28px;
    align-items: center;
    min-height: 130px;
    border-bottom: 1px solid rgba(32,35,31,.16);
}
.agenda-line > time,
.agenda-line > span {
    font-size: clamp(26px, 2.4vw, 38px);
    letter-spacing: -.03em;
    font-weight: 600;
}
.agenda-line div { display: grid; gap: 5px; }
.agenda-line strong { font-size: 18px; font-weight: 600; }
.agenda-line div span { color: var(--stone); font-size: 13px; }
.agenda-line b {
    justify-self: end;
    color: var(--clay-deep);
    font-size: 9px;
    letter-spacing: .12em;
}
.agenda-pending { opacity: .58; }

/* 08 — Ubicación */
.location {
    background: var(--forest-deep);
    color: var(--paper);
    padding: var(--section-space) 0;
}
.location-grid {
    display: grid;
    grid-template-columns: minmax(300px, .72fr) minmax(0, 1.28fr);
    gap: clamp(60px, 8vw, 130px);
    align-items: stretch;
}
.location-copy h2 { font-size: clamp(42px, 4.6vw, 72px); }
.venue-name {
    max-width: 480px;
    margin: 40px 0 0;
    font-size: clamp(20px, 2vw, 30px);
    line-height: 1.2;
}
.location-note {
    max-width: 460px;
    margin: 22px 0 0;
    color: rgba(244,239,229,.55);
    font-size: 13px;
    line-height: 1.55;
}
.location-map-link {
    width: fit-content;
    min-height: 52px;
    margin-top: 28px;
    padding: 0 18px;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 26px;
    color: var(--forest-deep);
    background: var(--paper);
    text-decoration: none;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    transition: transform .25s var(--ease), background-color .25s var(--ease);
}
.location-map-link:hover,
.location-map-link:focus-visible {
    transform: translateY(-2px);
    background: var(--ivory);
}
.map-live {
    position: relative;
    min-height: 560px;
    overflow: hidden;
    border: 1px solid rgba(244,239,229,.17);
    background: rgba(244,239,229,.04);
}
.map-live iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    filter: saturate(.78) contrast(.96);
}
.map-live-caption {
    position: absolute;
    z-index: 2;
    left: 20px;
    right: 20px;
    bottom: 20px;
    width: min(420px, calc(100% - 40px));
    padding: 16px 18px;
    display: grid;
    gap: 5px;
    background: rgba(24,34,30,.92);
    color: var(--paper);
    backdrop-filter: blur(12px);
    pointer-events: none;
}
.map-live-caption span {
    color: rgba(244,239,229,.58);
    font-size: 9px;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.map-live-caption strong {
    font-size: 15px;
    line-height: 1.25;
    font-weight: 600;
}

/* 09 — Registro */
.registration-stage {
    background: var(--ivory);
    padding: var(--section-space) 0;
}
.registration-grid {
    display: grid;
    grid-template-columns: minmax(300px, .82fr) minmax(0, 1.18fr);
    gap: clamp(60px, 9vw, 150px);
    align-items: start;
}
.registration-copy > p:last-child {
    max-width: 490px;
    margin: 30px 0 0;
    color: var(--stone);
    font-size: 15px;
    line-height: 1.65;
}
.registration-placeholder {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    padding: clamp(24px, 4vw, 54px);
    background: var(--paper);
    border: 1px solid rgba(32,35,31,.14);
}
.registration-status {
    grid-column: 1 / -1;
    margin-bottom: 14px;
    color: var(--clay-deep);
    font-size: 9px;
    letter-spacing: .13em;
}
.fake-field {
    min-height: 64px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 16px;
    border: 1px solid rgba(32,35,31,.15);
    color: var(--stone);
    font-size: 12px;
}
.fake-field.optional { grid-column: 1 / -1; }
.fake-field em {
    font-style: normal;
    font-size: 9px;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.button-disabled {
    grid-column: 1 / -1;
    margin-top: 4px;
    background: #d8d2c7;
    color: #77736d;
    cursor: not-allowed;
}


.qr-personal-notice {
    grid-column: 1 / -1;
    width: 100%;
    margin-top: 4px;
    padding: 18px 20px;
    border: 1px solid rgba(157,81,57,.28);
    background: rgba(157,81,57,.065);
}
.qr-personal-notice strong {
    display: block;
    margin-bottom: 7px;
    color: var(--clay-deep);
    font-size: 10px;
    font-weight: 750;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.qr-personal-notice p {
    margin: 0;
    color: #55574f;
    font-size: 13px;
    line-height: 1.55;
}

/* 10 — FAQ */
.faq {
    padding: var(--section-space) 0;
    border-top: 1px solid rgba(32,35,31,.10);
}
.faq-grid {
    display: grid;
    grid-template-columns: minmax(300px, .72fr) minmax(0, 1.28fr);
    gap: clamp(60px, 9vw, 150px);
}
.faq-list { border-top: 1px solid rgba(32,35,31,.16); }
.faq-list details { border-bottom: 1px solid rgba(32,35,31,.16); }
.faq-list summary {
    position: relative;
    cursor: pointer;
    list-style: none;
    padding: 27px 52px 27px 0;
    font-size: clamp(18px, 1.8vw, 25px);
    font-weight: 540;
    letter-spacing: -.025em;
}
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after {
    content: "+";
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--clay-deep);
    font-size: 26px;
    font-weight: 400;
}
.faq-list details[open] summary::after { content: "–"; }
.faq-list details p {
    max-width: 720px;
    margin: -3px 50px 28px 0;
    color: var(--stone);
    line-height: 1.65;
}

/* 11 — Organiza */
.organizer {
    background: var(--paper);
    padding: var(--section-space) 0;
    border-top: 1px solid rgba(32,35,31,.10);
}
.organizer-grid {
    display: grid;
    grid-template-columns: minmax(300px, .85fr) minmax(0, 1.15fr);
    gap: clamp(60px, 9vw, 150px);
    align-items: center;
}
.organizer-photo {
    position: relative;
    margin: 0;
    min-height: 560px;
    overflow: hidden;
    background: #dfcdb8;
    border: 1px solid rgba(32,35,31,.12);
}
.organizer-photo img {
    width: 100%;
    height: 100%;
    min-height: 560px;
    display: block;
    object-fit: cover;
    object-position: center top;
}
.organizer-photo::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 32%;
    background: linear-gradient(to top, rgba(25,31,27,.34), transparent);
    pointer-events: none;
}
.organizer-photo figcaption {
    position: absolute;
    z-index: 2;
    left: 22px;
    bottom: 20px;
    margin: 0;
    color: var(--paper);
    font-size: 10px;
    font-weight: 650;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.organizer-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(34px, 4vw, 58px);
    background: var(--ivory);
    border: 1px solid rgba(32,35,31,.12);
}
.organizer-copy h2 {
    margin: 18px 0 0;
    font-size: clamp(40px, 4.2vw, 66px);
    line-height: .96;
    letter-spacing: -.05em;
}
.pastors-label {
    margin: 28px 0 8px;
    color: var(--clay-deep);
    font-size: 10px;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.pastors {
    margin: 0;
    font-family: var(--serif);
    font-size: clamp(25px, 2.5vw, 39px);
    line-height: 1.05;
}
.organizer-story {
    margin-top: 30px;
    padding-top: 26px;
    border-top: 1px solid rgba(32,35,31,.14);
}
.organizer-story > p {
    margin: 0;
    max-width: 720px;
    color: #50534d;
    font-size: 15px;
    line-height: 1.66;
}
.organizer-pillars {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    margin-top: 26px;
}
.organizer-pillars > div {
    padding: 18px 18px 20px;
    border: 1px solid rgba(32,35,31,.12);
    background: rgba(251,248,242,.55);
}
.organizer-pillars h3 {
    display: block;
    margin: 0 0 8px;
    color: var(--clay-deep);
    font-size: 11px;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: .12em;
}
.organizer-pillars p {
    margin: 0;
    color: #55574f;
    font-size: 13px;
    line-height: 1.55;
}
.organizer-origin {
    margin-top: 26px !important;
    padding-top: 22px;
    border-top: 1px solid rgba(32,35,31,.14);
    color: var(--forest) !important;
}
.organizer-origin strong {
    color: var(--clay-deep);
    font-weight: 700;
}

/* 12 — Cierre */
.final-cta {
    position: relative;
    overflow: hidden;
    background: var(--forest);
    color: var(--paper);
    padding: clamp(96px, 10vw, 165px) 0;
}
.final-cta::after {
    content: "RESPONDE";
    position: absolute;
    right: -4vw;
    bottom: -3vw;
    color: rgba(244,239,229,.035);
    font-size: clamp(130px, 19vw, 330px);
    line-height: .7;
    font-weight: 650;
    letter-spacing: -.08em;
}
.final-cta-inner { position: relative; z-index: 2; }
.final-cta-inner > p {
    margin: 0 0 42px;
    color: rgba(244,239,229,.5);
    font-size: 10px;
    letter-spacing: .14em;
}
.final-cta h2 {
    max-width: 1050px;
    margin: 0;
    font-size: clamp(42px, 4.9vw, 78px);
    line-height: .94;
    letter-spacing: -.052em;
    font-weight: 520;
    text-transform: uppercase;
}
.final-cta h2 span,
.final-cta h2 strong { display: block; }
.final-cta h2 span { color: rgba(244,239,229,.56); }
.final-cta h2 strong { color: var(--paper); }
.button-light {
    min-width: 270px;
    margin-top: 52px;
    background: var(--paper);
    color: var(--forest);
}
.button-light:hover,
.button-light:focus-visible {
    transform: translateY(-2px);
    background: var(--ivory);
}

.site-footer {
    background: #18221e;
    color: rgba(244,239,229,.55);
    padding: 38px 0 120px;
    border-top: 1px solid rgba(244,239,229,.10);
}
.footer-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr;
    gap: 34px;
}
.footer-grid > div { display: grid; gap: 6px; }
.footer-grid strong,
.footer-grid span {
    font-size: 10px;
    line-height: 1.45;
    letter-spacing: .07em;
    text-transform: uppercase;
}
.footer-grid strong { color: var(--paper); }

.mobile-sticky { display: none; }

.reveal {
    opacity: 0;
    transform: translateY(14px);
    animation: enter .7s var(--ease) forwards;
}
.hero .reveal:nth-child(2) { animation-delay: .07s; }
.hero .reveal:nth-child(3) { animation-delay: .14s; }
.hero .reveal:nth-child(4) { animation-delay: .20s; }
.hero .reveal:nth-child(5) { animation-delay: .26s; }
.hero .reveal:nth-child(6) { animation-delay: .32s; }
.hero-media.reveal { animation-delay: .13s; }
@keyframes enter { to { opacity: 1; transform: translateY(0); } }

.scroll-reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .75s var(--ease), transform .75s var(--ease);
}
.scroll-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 1100px) {
    .split-head > div { grid-template-columns: 1fr; gap: 16px; }
    .section-head.split-head { align-items: start; }
    .experience-row { grid-template-columns: 42px 150px 1fr; }
}

@media (max-width: 920px) {
    :root {
        --shell: min(100% - 30px, 760px);
        --header-height: 70px;
        --section-space: 96px;
    }
    .header-nav > a:not(.header-cta) { display: none; }
    .header-cta { display: none; }
    .wordmark-logo { height: 48px; max-width: 185px; }

    .hero {
        min-height: auto;
        padding-top: calc(var(--header-height) + 40px);
        padding-bottom: 28px;
    }
    .hero::before {
        width: 110vw;
        right: -55vw;
        top: -38vw;
    }
    .hero-grid {
        min-height: auto;
        grid-template-columns: 1fr;
        gap: 36px;
    }
    .hero-copy { padding-block: 18px 0; }
    .eyebrow { margin-bottom: 22px; }
    .hero-title {
        font-size: clamp(55px, 15.2vw, 88px);
        line-height: .86;
    }
    .hero-title span:last-child { margin-left: 7vw; }
    .hero-call {
        margin-top: 27px;
        max-width: 510px;
        font-size: clamp(23px, 6.2vw, 34px);
    }
    .hero-meta {
        margin-top: 29px;
        gap: 20px 32px;
    }
    .button-primary { width: 100%; }
    .hero-thesis {
        margin-top: 34px;
        font-size: 14px;
    }
    .hero-media {
        min-height: 0;
        padding: 4px 0 0;
    }
    .media-placeholder { min-height: 55svh; }
    .hero-media figcaption { text-align: left; }
    .hero-footer {
        margin-top: 28px;
        grid-template-columns: 1fr;
        gap: 8px;
    }
    .hero-footer span:nth-child(2),
    .hero-footer span:nth-child(3) { text-align: left; }

    .manifesto-grid,
    .convocation-grid,
    .foundation-grid,
    .section-head,
    .split-head,
    .experience-grid,
    .agenda-grid,
    .location-grid,
    .registration-grid,
    .faq-grid,
    .organizer-grid {
        grid-template-columns: 1fr;
        gap: 42px;
    }
    .manifesto h2 {
        font-size: clamp(44px, 12.6vw, 68px);
        line-height: .88;
    }
    .convocation-copy { padding-top: 28px; }
    .foundation-text { grid-template-columns: 1fr; gap: 22px; }
    .foundation-ref { flex-direction: row; flex-wrap: wrap; gap: 10px 18px; }
    .foundation-ref span { width: 100%; margin-bottom: 8px; }
    .section-head { margin-bottom: 46px; }
    .calling-row { grid-template-columns: 44px 1fr; gap: 18px; }
    .calling-row p { grid-column: 2; }
    .minister-grid { grid-template-columns: 1fr; }
    .minister-card { grid-template-columns: 1fr; min-height: 0; }
    .minister-figure { min-height: 62svh; }
    .experience-row { grid-template-columns: 40px 1fr; gap: 12px 18px; }
    .experience-row p { grid-column: 2; }
    .agenda-line { grid-template-columns: 86px 1fr; gap: 18px; padding: 24px 0; }
    .agenda-line b { grid-column: 2; justify-self: start; }
    .map-live { min-height: 54svh; }
    .registration-placeholder { padding: 24px; }
    .footer-grid { grid-template-columns: 1fr; }

    .mobile-sticky {
        position: fixed;
        z-index: 60;
        left: 10px;
        right: 10px;
        bottom: max(10px, env(safe-area-inset-bottom));
        height: 62px;
        padding: 8px 8px 8px 14px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 14px;
        background: rgba(39,53,46,.96);
        color: var(--paper);
        border: 1px solid rgba(244,239,229,.12);
        backdrop-filter: blur(16px);
        transform: translateY(calc(100% + 24px));
        opacity: 0;
        pointer-events: none;
        transition: transform .35s var(--ease), opacity .35s var(--ease);
    }
    .mobile-sticky.is-visible {
        transform: translateY(0);
        opacity: 1;
        pointer-events: auto;
    }
    .mobile-sticky > div { display: grid; gap: 1px; }
    .mobile-sticky strong {
        font-size: 11px;
        letter-spacing: .06em;
    }
    .mobile-sticky span {
        color: rgba(244,239,229,.6);
        font-size: 10px;
    }
    .mobile-sticky a {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        padding-inline: 15px;
        background: var(--paper);
        color: var(--forest);
        text-decoration: none;
        font-size: 11px;
        font-weight: 700;
        letter-spacing: .05em;
        text-transform: uppercase;
    }
}

@media (max-width: 620px) {
    :root { --shell: calc(100% - 24px); --section-space: 82px; }
    .wordmark-logo { height: 46px; max-width: 170px; }
    .hero-meta { justify-content: space-between; }
    .hero-meta p { max-width: 48%; }
    .hero-meta p:last-child { text-align: right; }
    .media-placeholder { min-height: 51svh; }
    .convocation-lead h2 { font-size: clamp(36px, 10.4vw, 54px); }
    .foundation-content h2 { font-size: clamp(40px, 11.2vw, 62px); }
    .calling-row h3 { font-size: clamp(32px, 9.7vw, 52px); }
    .split-head > div { display: block; }
    .split-head .section-index { margin-bottom: 20px; }
    .minister-card-copy { padding: 30px 22px; }
    .registration-placeholder { grid-template-columns: 1fr; }
    .registration-status,
    .fake-field.optional,
    .button-disabled { grid-column: 1; }
    .map-live { min-height: 440px; }
    .organizer-photo { min-height: 0; }
    .organizer-photo img { min-height: 0; aspect-ratio: 2 / 3; }
    .organizer-copy { padding: 26px 22px; }
    .final-cta h2 { font-size: clamp(36px, 10.2vw, 54px); }
    .final-cta { padding-bottom: 150px; }
}

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

/* ETAPA 4 — Formulario real */
.registration-panel {
    background: var(--paper);
    border: 1px solid rgba(32,35,31,.14);
}
.registration-form {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px 16px;
    padding: clamp(26px, 4vw, 54px);
}
.registration-form.is-hidden { display: none; }
.form-field {
    display: grid;
    gap: 8px;
}
.form-field label {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    color: var(--ink);
    font-size: 11px;
    font-weight: 650;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.form-field label span {
    color: var(--stone);
    font-size: 9px;
    font-weight: 500;
}
.form-field input {
    width: 100%;
    min-height: 58px;
    padding: 0 15px;
    border: 1px solid rgba(32,35,31,.18);
    border-radius: 0;
    background: transparent;
    color: var(--ink);
    font: inherit;
    font-size: 16px;
    outline: none;
    transition: border-color .2s var(--ease), box-shadow .2s var(--ease), background-color .2s var(--ease);
}
.form-field input::placeholder { color: rgba(119,115,107,.6); }
.form-field input:focus {
    border-color: var(--forest);
    box-shadow: 0 0 0 3px rgba(39,53,46,.08);
    background: #fffdfa;
}
.form-field input[aria-invalid="true"] {
    border-color: var(--clay-deep);
}
.form-field small,
.consent-error {
    min-height: 16px;
    color: var(--clay-deep);
    font-size: 11px;
    line-height: 1.35;
}
.pastor-row {
    grid-column: 1 / -1;
    width: 100%;
    max-width: none;
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    margin-top: 4px;
    padding: 18px 20px;
    border: 1px solid rgba(39,53,46,.18);
    background: rgba(39,53,46,.035);
    cursor: pointer;
}
.pastor-row input,
.consent-row input {
    width: 17px;
    height: 17px;
    margin: 2px 0 0;
    accent-color: var(--forest);
}
.pastor-row > span {
    width: 100%;
    max-width: none;
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    align-items: baseline;
    column-gap: 10px;
    row-gap: 4px;
}
.pastor-row strong {
    color: var(--ink);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.pastor-row small {
    min-width: 0;
    max-width: none;
    color: var(--stone);
    font-size: 12px;
    line-height: 1.55;
}
.consent-row {
    grid-column: 1 / -1;
    width: 100%;
    max-width: none;
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 11px;
    align-items: start;
    margin-top: 4px;
    color: #5d5f59;
    font-size: 12px;
    line-height: 1.5;
    cursor: pointer;
}
.consent-error { grid-column: 1 / -1; margin-top: -14px; }
.form-message {
    grid-column: 1 / -1;
    min-height: 20px;
    font-size: 12px;
    line-height: 1.45;
}
.form-message.is-error { color: var(--clay-deep); }
.form-message.is-success { color: var(--forest); }
.registration-submit {
    grid-column: 1 / -1;
    width: 100%;
    min-height: 64px;
    border: 0;
    background: var(--forest);
    color: var(--paper);
    cursor: pointer;
}
.registration-submit:hover,
.registration-submit:focus-visible { background: var(--ink); }
.registration-submit[disabled] {
    cursor: wait;
    opacity: .72;
    transform: none;
}
.privacy-note {
    grid-column: 1 / -1;
    margin: -4px 0 0;
    color: var(--stone);
    font-size: 10px;
    line-height: 1.55;
}
.honeypot {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
}
.registration-success {
    display: none;
    min-height: 560px;
    padding: clamp(36px, 5vw, 72px);
    flex-direction: column;
    justify-content: center;
    background: var(--forest);
    color: var(--paper);
}
.registration-success.is-visible { display: flex; }
.registration-success-kicker {
    color: rgba(244,239,229,.55);
    font-size: 10px;
    letter-spacing: .14em;
}
.registration-success h3 {
    margin: 22px 0 10px;
    font-family: var(--serif);
    font-size: clamp(42px, 5vw, 70px);
    font-weight: 400;
    line-height: .95;
}
.registration-success > p {
    margin: 0;
    color: rgba(244,239,229,.72);
    line-height: 1.55;
}
.registration-code {
    margin-top: 44px;
    padding: 24px 0;
    border-block: 1px solid rgba(244,239,229,.17);
    display: grid;
    gap: 8px;
}
.registration-code span {
    color: rgba(244,239,229,.5);
    font-size: 9px;
    letter-spacing: .13em;
}
.registration-code strong {
    font-size: clamp(26px, 3vw, 42px);
    letter-spacing: .04em;
}
.registration-success .registration-success-note {
    max-width: 510px;
    margin-top: 26px;
    font-size: 12px;
}
@media (max-width: 620px) {
    .registration-form { grid-template-columns: 1fr; padding: 24px 18px; }
    .pastor-row { padding: 16px; }
    .pastor-row > span { grid-template-columns: 1fr; gap: 5px; }
    .pastor-row,
    .consent-row,
    .consent-error,
    .form-message,
    .registration-submit,
    .privacy-note { grid-column: 1; }
    .registration-success { min-height: 480px; padding: 38px 24px; }
}

/* ETAPA 5 — Entrada personal / QR */
.ticket-body {
    min-height: 100svh;
    background: var(--paper);
    color: var(--ink);
}
.ticket-page {
    width: min(100% - 40px, 1180px);
    margin-inline: auto;
    padding: 28px 0 70px;
}
.ticket-wordmark {
    display: inline-block;
    color: var(--ink);
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .02em;
}
.ticket-shell { padding-top: clamp(70px, 9vw, 130px); }
.ticket-intro {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, .62fr);
    gap: 34px 90px;
    align-items: end;
    margin-bottom: 42px;
}
.ticket-intro .micro-label { grid-column: 1 / -1; }
.ticket-intro h1 {
    margin: 0;
    font-size: clamp(46px, 6vw, 84px);
    line-height: .92;
    letter-spacing: -.06em;
    font-weight: 560;
}
.ticket-intro > p:last-child {
    margin: 0;
    color: var(--stone);
    font-size: 16px;
    line-height: 1.55;
}
.digital-ticket {
    overflow: hidden;
    border: 1px solid rgba(32,35,31,.16);
    background: var(--ivory);
}
.digital-ticket-head,
.digital-ticket-foot {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    padding: 22px 26px;
}
.digital-ticket-head {
    align-items: flex-start;
    border-bottom: 1px solid rgba(32,35,31,.14);
}
.digital-ticket-head > div { display: grid; gap: 8px; }
.digital-ticket-head span,
.ticket-details span,
.personal-qr figcaption,
.digital-ticket-foot span {
    font-size: 9px;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.digital-ticket-head > div > span,
.ticket-details span,
.digital-ticket-foot span { color: var(--stone); }
.digital-ticket-head strong {
    font-family: var(--serif);
    font-size: clamp(28px, 3.3vw, 46px);
    font-weight: 400;
    line-height: 1;
}
.ticket-status {
    color: var(--clay-deep);
    font-weight: 700;
    white-space: nowrap;
}
.digital-ticket-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, .62fr);
    min-height: 450px;
}
.ticket-details {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-content: center;
    gap: 0;
    padding: clamp(28px, 5vw, 70px);
}
.ticket-details > div {
    display: grid;
    gap: 9px;
    padding: 28px 24px 28px 0;
    border-top: 1px solid rgba(32,35,31,.14);
}
.ticket-details strong {
    font-size: clamp(18px, 2vw, 28px);
    letter-spacing: -.03em;
}
.personal-qr {
    margin: 0;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 18px;
    padding: 34px;
    background: var(--forest);
    color: var(--paper);
}
.personal-qr img {
    display: block;
    width: min(100%, 310px);
    aspect-ratio: 1;
    background: #fff;
    padding: 14px;
}
.personal-qr figcaption {
    color: rgba(244,239,229,.62);
    text-align: center;
}
.digital-ticket-foot {
    border-top: 1px solid rgba(32,35,31,.14);
}
.ticket-stage-note {
    max-width: 760px;
    margin-top: 28px;
    color: var(--stone);
    font-size: 13px;
    line-height: 1.6;
}
.ticket-stage-note strong { color: var(--ink); }
.ticket-stage-note a {
    display: inline-block;
    margin-top: 12px;
    color: var(--ink);
    text-underline-offset: 4px;
}
.ticket-error {
    max-width: 680px;
    padding-top: clamp(90px, 14vw, 180px);
}
.ticket-error > span {
    color: var(--clay-deep);
    font-size: 10px;
    letter-spacing: .13em;
}
.ticket-error h1 {
    margin: 20px 0;
    font-size: clamp(42px, 6vw, 78px);
    line-height: .94;
    letter-spacing: -.055em;
}
.ticket-error p {
    margin: 0 0 30px;
    color: var(--stone);
    line-height: 1.6;
}

@media (max-width: 760px) {
    .ticket-page { width: min(100% - 24px, 620px); padding-top: 20px; }
    .ticket-shell { padding-top: 64px; }
    .ticket-intro,
    .digital-ticket-main { grid-template-columns: 1fr; }
    .ticket-intro { gap: 20px; }
    .ticket-intro .micro-label { grid-column: auto; }
    .digital-ticket-head {
        flex-direction: column;
        align-items: flex-start;
    }
    .ticket-details { padding: 24px 22px; }
    .personal-qr { min-height: 390px; }
    .digital-ticket-foot { flex-direction: column; gap: 8px; }
}

/* ETAPA 6 — Confirmación, acciones y viralidad */
.ticket-intro > div { min-width: 0; }
.ticket-intro-quote {
    margin: 22px 0 0;
    color: var(--clay-deep);
    font-family: var(--serif);
    font-size: clamp(18px, 1.8vw, 26px);
    line-height: 1.25;
}
.ticket-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
}
.ticket-action,
.share-option {
    min-height: 62px;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 0 18px;
    border: 1px solid rgba(32,35,31,.16);
    border-radius: 0;
    background: transparent;
    color: var(--ink);
    font: inherit;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .065em;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
    transition: background-color .22s var(--ease), color .22s var(--ease), border-color .22s var(--ease), transform .22s var(--ease);
}
.ticket-action:hover,
.ticket-action:focus-visible,
.share-option:hover,
.share-option:focus-visible {
    transform: translateY(-1px);
    border-color: var(--forest);
    background: var(--ivory);
}
.ticket-action-primary {
    background: var(--forest);
    border-color: var(--forest);
    color: var(--paper);
}
.ticket-action-primary:hover,
.ticket-action-primary:focus-visible {
    background: var(--ink);
    border-color: var(--ink);
    color: var(--paper);
}
.share-callout {
    margin-top: clamp(70px, 9vw, 118px);
    padding: clamp(38px, 6vw, 74px);
    background: var(--ivory);
    border: 1px solid rgba(32,35,31,.12);
}
.share-callout-grid {
    display: grid;
    grid-template-columns: minmax(0, .92fr) minmax(320px, 1.08fr);
    gap: clamp(50px, 8vw, 112px);
    align-items: end;
    margin-top: 24px;
}
.share-callout h2 {
    margin: 0;
    font-size: clamp(42px, 5vw, 72px);
    line-height: .94;
    letter-spacing: -.055em;
    font-weight: 550;
}
.share-callout-grid > div:first-child > p {
    max-width: 520px;
    margin: 22px 0 0;
    color: var(--stone);
    font-size: clamp(16px, 1.4vw, 20px);
    line-height: 1.55;
}
.share-options {
    display: grid;
    border-top: 1px solid rgba(32,35,31,.15);
}
.share-option {
    width: 100%;
    min-height: 68px;
    border-width: 0 0 1px;
    border-color: rgba(32,35,31,.15);
    padding-inline: 2px;
    background: transparent;
    text-align: left;
}
.share-option:hover,
.share-option:focus-visible {
    transform: none;
    background: transparent;
    border-color: var(--clay-deep);
    color: var(--clay-deep);
}
.share-option.whatsapp { color: var(--forest); }
.share-privacy {
    margin: 34px 0 0;
    color: var(--stone);
    font-size: 10px;
    line-height: 1.55;
}
.ticket-toast {
    position: fixed;
    z-index: 100;
    left: 50%;
    bottom: 24px;
    transform: translate(-50%, 18px);
    max-width: min(90vw, 520px);
    padding: 12px 16px;
    background: var(--forest);
    color: var(--paper);
    font-size: 12px;
    line-height: 1.4;
    opacity: 0;
    pointer-events: none;
    transition: opacity .22s var(--ease), transform .22s var(--ease);
}
.ticket-toast.is-visible {
    opacity: 1;
    transform: translate(-50%, 0);
}
@media (max-width: 760px) {
    .ticket-actions { grid-template-columns: 1fr; }
    .ticket-action { min-height: 58px; }
    .share-callout { padding: 32px 22px; }
    .share-callout-grid { grid-template-columns: 1fr; gap: 38px; }
    .share-callout h2 { font-size: clamp(38px, 11vw, 56px); }
    .share-option { min-height: 62px; }
}

/* ETAPA 7C — Hero con fotografía real */
.hero-photo {
    position: relative;
    min-height: clamp(500px, 66vh, 760px);
    overflow: hidden;
    background: #d9cbb9;
}
.hero-photo::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(32,35,31,.22), transparent 38%);
    pointer-events: none;
}
.hero-photo img {
    width: 100%;
    height: 100%;
    min-height: clamp(500px, 66vh, 760px);
    display: block;
    object-fit: cover;
    object-position: center center;
}
@media (max-width: 920px) {
    .hero-photo,
    .hero-photo img { min-height: 55svh; }
    .hero-photo img { object-position: center 44%; }
}
@media (max-width: 620px) {
    .hero-photo,
    .hero-photo img { min-height: 51svh; }
}

/* ETAPA 8 — Casa de Adoración + optimización mobile */
.organizer-photo picture {
    display: block;
    width: 100%;
    height: 100%;
}
.hero-photo picture img,
.minister-figure picture img,
.organizer-photo picture img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media (max-width: 920px) {
}

@media (max-width: 620px) {
    :root { --section-space: 74px; }
    .hero { padding-top: calc(var(--header-height) + 28px); }
    .hero-title { font-size: clamp(50px,14vw,74px); }
    .hero-call { font-size: clamp(21px,5.9vw,29px); }
    .hero-meta { gap: 18px 20px; }
    .hero-meta p { max-width: 100%; flex: 1 1 44%; }
    .hero-thesis br { display: none; }
    .hero-photo { min-height: 0; aspect-ratio: 4 / 3; }
    .hero-photo picture img { object-position: center center; }
    .manifesto { padding: 88px 0; }
    .manifesto h2 { font-size: clamp(44px,13vw,66px); }
    .manifesto-kicker { font-size: 24px; }
    .foundation-content h2,
    .final-cta h2 { overflow-wrap: anywhere; }
    .minister-figure { min-height: 0; aspect-ratio: 4 / 5; }
    .minister-figure picture img { object-position: center top; }
    .form-field input { min-height: 60px; font-size: 16px; }
    .registration-submit { min-height: 60px; }
    .organizer-photo img { aspect-ratio: 3 / 4; object-position: center top; }
    .organizer-pillars { grid-template-columns: 1fr; gap: 12px; }
    .organizer-story { margin-top: 24px; padding-top: 22px; }
    .organizer-story > p { font-size: 14px; line-height: 1.65; }
    .organizer-copy h2 { font-size: clamp(38px,11vw,54px); }
}

/* ETAPA 8I — descarga PNG compatible con móvil */
.ticket-action[type="button"] {
    width: 100%;
    font: inherit;
    cursor: pointer;
}
.ticket-action[type="button"]:disabled {
    opacity: .65;
    cursor: wait;
}
