/* ===== Landing pública — DREA Ayacucho ===== */
* { box-sizing: border-box; }
.pub { margin: 0; font-family: var(--font-body); color: var(--color-text); background: var(--color-bg); }
.pub a { text-decoration: none; }

/* Nav */
.pub-nav { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between;
  padding: .8rem clamp(1.2rem, 5vw, 4rem); background: color-mix(in srgb, var(--color-bg) 88%, transparent); backdrop-filter: blur(12px); border-bottom: 1px solid var(--color-border); }
.pub-brand { display: flex; align-items: center; gap: .7rem; color: var(--color-text); }
.pub-logo { height: 44px; width: auto; }
.pub-brand-txt { font-family: var(--font-heading); font-size: 1.05rem; line-height: 1.1; }
.pub-brand-txt b { display: block; font-weight: 800; }
.pub-nav-btn { padding: .55rem 1.4rem; border-radius: 10px; background: var(--color-primary); color: #fff; font-weight: 600; transition: transform .12s, box-shadow .12s; }
.pub-nav-btn:hover { transform: translateY(-1px); box-shadow: 0 8px 20px -8px var(--color-primary); }

/* Hero */
.ld-hero { position: relative; overflow: hidden; padding: clamp(3.5rem, 9vw, 7rem) clamp(1.2rem, 5vw, 4rem) clamp(3rem, 7vw, 5rem);
  background: linear-gradient(160deg, color-mix(in srgb, var(--color-primary) 10%, var(--color-bg)), var(--color-bg) 72%); }
.ld-hero-glow { position: absolute; border-radius: 50%; filter: blur(14px); pointer-events: none; opacity: .55; }
.ld-glow-1 { width: 540px; height: 540px; background: color-mix(in srgb, var(--color-primary) 32%, transparent); top: -240px; right: -120px; }
.ld-glow-2 { width: 440px; height: 440px; background: color-mix(in srgb, var(--color-accent) 28%, transparent); bottom: -220px; left: -140px; }
.ld-hero-in { position: relative; z-index: 2; max-width: 920px; }
.ld-eyebrow { display: inline-block; font-size: var(--fs-sm); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--color-primary-dark); margin: 0 0 1.1rem; }
.ld-title { font-family: var(--font-heading); font-size: clamp(2.2rem, 6vw, 4.1rem); line-height: 1.04; font-weight: 800; margin: 0 0 1.3rem; letter-spacing: -.02em; }
.ld-title span { color: var(--color-primary); }
.ld-lead { font-size: clamp(1.05rem, 2vw, 1.32rem); line-height: 1.6; color: var(--color-muted); max-width: 64ch; margin: 0 0 2rem; }
.ld-cta { display: flex; flex-wrap: wrap; gap: .9rem; }
.ld-btn { display: inline-block; padding: .9rem 1.8rem; border-radius: 12px; font-weight: 600; font-size: 1rem; transition: transform .12s, box-shadow .12s, background .15s, color .15s; }
.ld-btn-primary { background: var(--color-primary); color: #fff; }
.ld-btn-primary:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -10px var(--color-primary); }
.ld-btn-ghost { background: transparent; color: var(--color-text); border: 1.5px solid var(--color-border); }
.ld-btn-ghost:hover { border-color: var(--color-primary); color: var(--color-primary); }

/* Banda de cifras */
.ld-stats { background: linear-gradient(150deg, var(--color-primary), var(--color-primary-dark)); color: #fff; }
.ld-stats-in { max-width: 1180px; margin: 0 auto; padding: clamp(1.8rem, 4vw, 2.6rem) clamp(1.2rem, 5vw, 4rem);
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.ld-stat { text-align: center; }
.ld-stat-num { display: block; font-family: var(--font-heading); font-size: clamp(1.8rem, 4vw, 2.8rem); font-weight: 800; line-height: 1; }
.ld-stat-lbl { display: block; margin-top: .4rem; font-size: var(--fs-sm); opacity: .85; }

/* Región */
.ld-region { padding: clamp(3.5rem, 8vw, 6rem) clamp(1.2rem, 5vw, 4rem); max-width: 1180px; margin: 0 auto; }
.ld-region-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.ld-tag { display: inline-block; font-size: var(--fs-sm); font-weight: 700; letter-spacing: .04em; color: var(--color-primary-dark);
  background: color-mix(in srgb, var(--color-primary) 12%, transparent); padding: .3rem .8rem; border-radius: 999px; margin-bottom: 1rem; }
.ld-tag-light { color: #fff; background: rgba(255,255,255,.18); }
.ld-region-txt h2 { font-family: var(--font-heading); font-size: clamp(1.7rem, 3.6vw, 2.5rem); font-weight: 700; margin: 0 0 1rem; letter-spacing: -.01em; }
.ld-region-txt p { color: var(--color-muted); line-height: 1.7; margin: 0 0 1rem; }
.ld-region-note { color: var(--color-text) !important; font-weight: 500; border-left: 3px solid var(--color-primary); padding-left: 1rem; }
.ld-region-card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 20px; padding: 1.8rem; box-shadow: 0 20px 50px -25px rgba(0,0,0,.3); }
.ld-region-card h3 { font-family: var(--font-heading); margin: 0 0 1.2rem; font-size: 1.25rem; }
.ld-grow { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 1.1rem; }
.ld-grow li { display: flex; gap: .9rem; align-items: flex-start; }
.ld-grow span { flex: none; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; background: color-mix(in srgb, var(--color-primary) 14%, transparent); color: var(--color-primary-dark); font-weight: 800; }
.ld-grow b { display: block; }
.ld-grow small { color: var(--color-muted); line-height: 1.45; }

/* Institutos */
.ld-insts { padding: clamp(3rem, 7vw, 5rem) clamp(1.2rem, 5vw, 4rem); background: color-mix(in srgb, var(--color-primary) 4%, var(--color-bg)); }
.ld-sec-head { text-align: center; max-width: 720px; margin: 0 auto 2.6rem; }
.ld-sec-head h2 { font-family: var(--font-heading); font-size: clamp(1.7rem, 3.6vw, 2.5rem); font-weight: 700; margin: 0 0 .8rem; letter-spacing: -.01em; }
.ld-sec-head p { color: var(--color-muted); font-size: var(--fs-md); line-height: 1.6; margin: 0; }
.ld-inst-chips { max-width: 980px; margin: 0 auto; display: flex; flex-wrap: wrap; gap: .7rem; justify-content: center; }
.ld-inst-chips span { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 999px; padding: .55rem 1.1rem; font-size: var(--fs-sm); font-weight: 500; }
.ld-chip-more { color: var(--color-primary-dark); border-color: var(--color-primary) !important; background: color-mix(in srgb, var(--color-primary) 8%, var(--color-surface)) !important; }

/* Features */
.ld-section { padding: clamp(3.5rem, 8vw, 6rem) clamp(1.2rem, 5vw, 4rem); max-width: 1180px; margin: 0 auto; }
.ld-features { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.4rem; }
.ld-feat { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 18px; padding: 1.8rem 1.6rem; transition: transform .15s, box-shadow .15s, border-color .15s; }
.ld-feat:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -18px rgba(0,0,0,.25); border-color: color-mix(in srgb, var(--color-primary) 40%, var(--color-border)); }
.ld-feat-ic { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 15px; margin-bottom: 1.1rem; color: #fff; }
.ld-feat-ic svg { width: 26px; height: 26px; }
.ld-ic-a { background: linear-gradient(140deg, #6366F1, #4F46E5); }
.ld-ic-b { background: linear-gradient(140deg, #10B981, #059669); }
.ld-ic-c { background: linear-gradient(140deg, #F59E0B, #D97706); }
.ld-ic-d { background: linear-gradient(140deg, #EC4899, #DB2777); }
.ld-feat h3 { font-family: var(--font-heading); font-size: 1.2rem; margin: 0 0 .5rem; }
.ld-feat p { color: var(--color-muted); line-height: 1.55; margin: 0; font-size: var(--fs-sm); }

/* DREA compromiso */
.ld-drea { padding: clamp(1.2rem, 5vw, 4rem); }
.ld-drea-in { position: relative; overflow: hidden; max-width: 1180px; margin: 0 auto; border-radius: 24px;
  padding: clamp(2.5rem, 6vw, 4.5rem); background: linear-gradient(150deg, #1f2937, #0f172a); color: #fff; }
.ld-drea-txt h2 { font-family: var(--font-heading); font-size: clamp(1.7rem, 3.6vw, 2.5rem); margin: 0 0 1rem; max-width: 22ch; }
.ld-drea-txt p { opacity: .82; line-height: 1.7; margin: 0 0 1.8rem; max-width: 64ch; }
.ld-drea-points { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1.2rem; }
.ld-drea-points div { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); border-radius: 12px; padding: 1.1rem; }
.ld-drea-points b { display: block; margin-bottom: .25rem; }
.ld-drea-points small { opacity: .75; line-height: 1.45; }

/* CTA final */
.ld-final { padding: clamp(1.2rem, 5vw, 4rem) clamp(1.2rem, 5vw, 4rem) clamp(3rem, 6vw, 5rem); }
.ld-final-in { position: relative; overflow: hidden; max-width: 1180px; margin: 0 auto; border-radius: 24px; padding: clamp(2.5rem, 6vw, 4.5rem); text-align: center;
  background: linear-gradient(150deg, var(--color-primary), var(--color-primary-dark)); color: #fff; }
.ld-final-in h2 { font-family: var(--font-heading); font-size: clamp(1.8rem, 4vw, 2.8rem); margin: 0 0 .7rem; }
.ld-final-in p { opacity: .9; font-size: var(--fs-md); margin: 0 0 1.8rem; }
.ld-btn-light { background: #fff; color: var(--color-primary-dark); }
.ld-btn-light:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -10px rgba(0,0,0,.3); }

/* Footer */
.pub-foot { border-top: 1px solid var(--color-border); padding: 1.8rem clamp(1.2rem, 5vw, 4rem); }
.pub-foot-in { max-width: 1180px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; }
.pub-foot-brand { display: flex; align-items: center; gap: .7rem; font-weight: 600; }
.pub-foot-brand img { height: 38px; width: auto; }
.pub-foot-meta { display: flex; flex-direction: column; text-align: right; color: var(--color-muted); font-size: var(--fs-sm); }

/* Responsive */
@media (max-width: 860px) {
  .ld-stats-in { grid-template-columns: repeat(2, 1fr); }
  .ld-region-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .pub-foot-in { flex-direction: column; text-align: center; }
  .pub-foot-meta { text-align: center; }
}
