/* ── HERO ── */
.hero {
  min-height: 100vh; display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  text-align: center; padding: 120px 24px 96px; position: relative; overflow: hidden;
}
.hero::before {
  content:''; position:absolute; inset:0; pointer-events:none;
  background-image: radial-gradient(ellipse 70% 50% at 50% 0%, rgba(168,196,138,0.11) 0%, transparent 65%),
    radial-gradient(ellipse 40% 40% at 85% 85%, rgba(200,168,106,0.06) 0%, transparent 55%);
}
.hero-eyebrow { display:inline-flex; align-items:center; gap:12px; font-size:10px; font-weight:500; letter-spacing:2.5px; text-transform:uppercase; color:var(--olive-mid); margin-bottom:36px; opacity:0; animation:fadeUp 0.7s ease 0.1s forwards; }
.hero-h1 { font-family:var(--font-display); font-size:clamp(42px,5.8vw,76px); font-weight:300; line-height:1.1; color:var(--olive-text); max-width:820px; margin-bottom:28px; opacity:0; animation:fadeUp 0.9s ease 0.25s forwards; }
.hero-h1 em { font-style:italic; color:var(--olive); }
.hero-sub { font-size:17px; font-weight:300; color:var(--olive-mid); line-height:1.8; max-width:500px; margin-bottom:52px; opacity:0; animation:fadeUp 0.8s ease 0.4s forwards; }
.hero-actions { display:flex; align-items:center; justify-content:center; gap:20px; margin-bottom:80px; opacity:0; animation:fadeUp 0.8s ease 0.55s forwards; }
.hero-verse { max-width:500px; width:100%; opacity:0; animation:fadeUp 0.9s ease 0.75s forwards; }
.hero-verse-inner { border:0.5px solid var(--cream-border); border-radius:var(--radius-lg); padding:32px 40px; background:var(--cream-dark); }
.verse-mark { font-family:var(--font-display); font-size:72px; line-height:0.6; color:var(--gold); opacity:0.5; display:block; margin-bottom:14px; }
.verse-text { font-family:var(--font-display); font-size:20px; font-weight:300; font-style:italic; color:var(--olive-text); line-height:1.6; margin-bottom:14px; }
.verse-ref { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--olive-mid); opacity:0.6; }

/* ── SECCIÓN CAMINO ── */
.section-camino { padding:128px 80px; }
.camino-inner { max-width:1080px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:88px; align-items:start; }
.eyebrow-tag { display:flex; align-items:center; gap:10px; font-size:10px; font-weight:500; letter-spacing:2.5px; text-transform:uppercase; color:var(--gold); margin-bottom:20px; opacity:0; transition:opacity 0.6s ease; }
.eyebrow-tag.visible { opacity:1; }
.eyebrow-tag .eyebrow-line { background:var(--cream-border); }
.eyebrow-tag.light .eyebrow-line { background:rgba(168,196,138,0.2); }
.section-title { font-family:var(--font-display); font-size:clamp(28px,3.5vw,44px); font-weight:300; color:var(--olive-text); line-height:1.2; margin-bottom:20px; opacity:0; transform:translateY(10px); transition:opacity 0.7s ease 0.1s,transform 0.7s ease 0.1s; }
.section-title.visible { opacity:1; transform:translateY(0); }
.section-title.light { color:#D4E4B8; }
.body-text { font-size:15px; color:var(--olive-mid); line-height:1.85; margin-bottom:14px; opacity:0; transition:opacity 0.7s ease 0.2s; }
.body-text.visible { opacity:1; }
.body-text strong { color:var(--olive-text); font-weight:500; }
.body-text.light { color:rgba(168,196,138,0.45); }
.inline-link { display:inline-flex; align-items:center; gap:7px; margin-top:20px; font-size:13px; font-weight:500; color:var(--olive); border-bottom:0.5px solid var(--olive-light); padding-bottom:2px; cursor:pointer; opacity:0; transition:opacity 0.6s ease 0.35s,color 0.2s,border-color 0.2s; }
.inline-link.visible { opacity:1; }
.inline-link:hover { color:var(--olive-text); border-color:var(--olive); }
.hitos-col { display:flex; flex-direction:column; gap:0; opacity:0; transform:translateX(14px); transition:opacity 0.8s ease 0.25s,transform 0.8s ease 0.25s; }
.hitos-col.visible { opacity:1; transform:translateX(0); }
.hito-row { display:flex; align-items:flex-start; gap:16px; padding:15px 18px; border-radius:var(--radius-md); border:0.5px solid var(--cream-border); background:var(--cream-dark); transition:border-color 0.2s,transform 0.2s; }
.hito-row:hover { border-color:var(--olive-light); transform:translateX(4px); }
.hito-connector { width:0.5px; height:10px; background:var(--cream-border); margin-left:32px; }
.hito-num { font-family:var(--font-display); font-size:20px; font-weight:300; color:var(--gold); min-width:22px; line-height:1; padding-top:1px; }
.hito-name { font-size:13px; font-weight:500; color:var(--olive-text); margin-bottom:2px; }
.hito-desc { font-size:11px; color:var(--olive-mid); line-height:1.5; }

/* ── PILARES ── */
.section-pilares { background:var(--olive-night); padding:120px 80px; position:relative; overflow:hidden; }
.section-pilares::before { content:''; position:absolute; inset:0; pointer-events:none; background-image:radial-gradient(ellipse 55% 65% at 8% 92%,rgba(168,196,138,0.07) 0%,transparent 55%),radial-gradient(ellipse 40% 40% at 92% 8%,rgba(200,168,106,0.05) 0%,transparent 50%); }
.pilares-inner { max-width:1080px; margin:0 auto; position:relative; z-index:1; }
.pilares-header { margin-bottom:60px; }
.pilares-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(168,196,138,0.12); border-radius:var(--radius-lg); overflow:hidden; border:0.5px solid rgba(168,196,138,0.12); }
.pilar-card { background:var(--cream); padding:44px 36px; opacity:0; transform:translateY(12px); transition:opacity 0.6s ease,transform 0.6s ease,background 0.2s; }
.pilar-card.visible { opacity:1; transform:translateY(0); }
.pilar-card:hover { background:#FAF8F2; }
.pilar-num { font-family:var(--font-display); font-size:52px; font-weight:300; color:rgba(74,94,56,0.12); line-height:1; margin-bottom:20px; }
.pilar-icon { margin-bottom:16px; }
.pilar-title { font-family:var(--font-display); font-size:22px; font-weight:300; color:var(--olive-text); margin-bottom:12px; line-height:1.3; }
.pilar-body { font-size:13px; color:var(--olive-mid); line-height:1.8; }

/* ── CTA ── */
.section-cta { background:var(--cream); padding:128px 80px; text-align:center; position:relative; overflow:hidden; }
.section-cta::before { content:''; position:absolute; inset:0; pointer-events:none; background-image:radial-gradient(ellipse 65% 65% at 50% 50%,rgba(168,196,138,0.09) 0%,transparent 65%); }
.cta-inner { position:relative; z-index:1; }
.cta-eyebrow { font-size:10px; letter-spacing:2.5px; text-transform:uppercase; color:var(--olive-mid); margin-bottom:18px; }
.cta-h2 { font-family:var(--font-display); font-size:clamp(32px,4.5vw,56px); font-weight:300; color:var(--olive-text); line-height:1.15; max-width:560px; margin:0 auto 18px; }
.cta-sub { font-size:15px; color:var(--olive-mid); max-width:400px; margin:0 auto 52px; line-height:1.8; }
.cta-card { display:inline-flex; flex-direction:column; align-items:stretch; gap:18px; background:var(--cream-dark); border:0.5px solid var(--cream-border); border-radius:var(--radius-lg); padding:40px 44px; max-width:440px; width:100%; text-align:left; }
.cta-list { list-style:none; display:flex; flex-direction:column; gap:14px; }
.cta-list li { display:flex; align-items:flex-start; gap:12px; font-size:14px; color:var(--olive-mid); line-height:1.6; }
.cta-check { width:18px; height:18px; border-radius:50%; background:rgba(74,94,56,0.08); border:0.5px solid var(--olive-light); display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:2px; }
.cta-list strong { color:var(--olive-text); font-weight:500; }
.btn-light { display:inline-flex; align-items:center; justify-content:center; gap:8px; font-size:14px; font-weight:500; color:var(--cream); background:var(--olive); padding:15px 32px; border-radius:var(--radius-sm); width:100%; cursor:pointer; transition:background 0.2s,transform 0.15s; }
.btn-light:hover { background:var(--olive-text); transform:translateY(-1px); }
.btn-light svg { transition:transform 0.2s; }
.btn-light:hover svg { transform:translateX(3px); }
.cta-note { font-size:11px; color:var(--olive-mid); opacity:0.5; text-align:center; }
