/* Lienzo Charro – sistema de diseño (hijo de NewsExo) */
:root{
  --lcc-primary:#7a2e1c;
  --lcc-primary-d:#5e2113;
  --lcc-accent:#d69e2e;
  --lcc-dark:#241612;
  --lcc-light:#faf6f0;
  --lcc-ink:#3a2a24;
  --lcc-muted:#6f5d55;
  --lcc-line:#eadfd2;
  --ease-out:cubic-bezier(0.23,1,0.32,1);
  --ease-in-out:cubic-bezier(0.77,0,0.175,1);
  --lcc-shadow:0 2px 14px rgba(36,22,18,.08);
  --lcc-shadow-h:0 12px 28px rgba(36,22,18,.16);
}

body{ font-family:'Inter',system-ui,sans-serif; background:var(--lcc-light); color:var(--lcc-ink); }
h1,h2,h3,h4{ font-family:'Poppins',system-ui,sans-serif; color:var(--lcc-dark); }

/* ---------- Portada ---------- */
.lcc-home-main{ overflow:hidden; }
.lcc-wrap{ width:min(1180px,100% - 32px); margin-inline:auto; }
.lcc-wrap--narrow{ width:min(780px,100% - 32px); }

.lcc-eyebrow{
  display:inline-block; margin:0 0 .9rem; padding:.3rem .9rem;
  background:rgba(214,158,46,.18); color:var(--lcc-primary-d);
  border-radius:999px; font-weight:600; font-size:.85rem; letter-spacing:.04em; text-transform:uppercase;
}

/* Hero */
.lcc-hero{ background:linear-gradient(180deg,#fff 0%,var(--lcc-light) 100%); padding:clamp(2rem,6vw,4.5rem) 0; }
.lcc-hero__grid{ display:grid; gap:clamp(1.5rem,4vw,3.5rem); align-items:center; grid-template-columns:1fr; }
@media (min-width:900px){ .lcc-hero__grid{ grid-template-columns:1.05fr .95fr; } }
.lcc-hero__title{ font-size:clamp(2rem,4.6vw,3.4rem); line-height:1.08; font-weight:800; margin:0 0 1rem; }
.lcc-hero__lead{ font-size:clamp(1.02rem,1.6vw,1.2rem); color:var(--lcc-muted); margin:0 0 1.6rem; max-width:34em; }
.lcc-hero__actions{ display:flex; flex-wrap:wrap; gap:.75rem; margin-bottom:1.5rem; }
.lcc-hero__facts{ display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; list-style:none; padding:0; margin:0 0 .6rem; color:var(--lcc-muted); font-size:.95rem; }
.lcc-hero__facts strong{ color:var(--lcc-dark); }
.lcc-hero__note{ font-size:.8rem; color:var(--lcc-muted); margin:0; }
.lcc-hero__media{ border-radius:20px; overflow:hidden; box-shadow:var(--lcc-shadow-h); background:var(--lcc-dark); }
.lcc-hero__media img{ display:block; width:100%; height:auto; }

/* Botones */
.lcc-btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:48px; padding:.8rem 1.6rem; border-radius:999px;
  font-weight:600; text-decoration:none; border:2px solid transparent;
  transition:transform 160ms var(--ease-out), background-color 160ms ease, color 160ms ease, border-color 160ms ease;
}
.lcc-btn:active{ transform:scale(.97); }
.lcc-btn--primary{ background:var(--lcc-primary); color:#fff !important; }
.lcc-btn--ghost{ border-color:var(--lcc-primary); color:var(--lcc-primary) !important; background:transparent; }
.lcc-btn--light{ background:#fff; color:var(--lcc-primary-d) !important; }
@media (hover:hover) and (pointer:fine){
  .lcc-btn--primary:hover{ background:var(--lcc-primary-d); }
  .lcc-btn--ghost:hover{ background:var(--lcc-primary); color:#fff !important; }
  .lcc-btn--light:hover{ background:var(--lcc-accent); }
}
.lcc-btn:focus-visible, .lcc-card:focus-visible, .lcc-venue:focus-visible, .lcc-faq summary:focus-visible{
  outline:3px solid var(--lcc-accent); outline-offset:3px;
}

/* Secciones */
.lcc-section{ padding:clamp(2.5rem,6vw,4.5rem) 0; }
.lcc-section--tint{ background:#fff; }
.lcc-head{ max-width:44em; margin:0 0 2rem; }
.lcc-head h2{ font-size:clamp(1.6rem,3vw,2.3rem); font-weight:800; margin:0 0 .5rem; }
.lcc-head p{ color:var(--lcc-muted); margin:0; font-size:1.05rem; }
.lcc-center{ text-align:center; margin:2rem 0 0; }
.lcc-more{ margin:1.5rem 0 0; color:var(--lcc-muted); }
.lcc-more a{ color:var(--lcc-primary); font-weight:600; }
.lcc-link{ color:var(--lcc-primary); font-weight:600; text-decoration:underline; text-underline-offset:4px; }

/* Rejillas */
.lcc-grid{ display:grid; gap:1.25rem; grid-template-columns:1fr; }
@media (min-width:600px){ .lcc-grid--4,.lcc-grid--3{ grid-template-columns:repeat(2,1fr); } .lcc-grid--6{ grid-template-columns:repeat(3,1fr); } }
@media (min-width:960px){ .lcc-grid--3{ grid-template-columns:repeat(3,1fr); } .lcc-grid--4{ grid-template-columns:repeat(4,1fr); } .lcc-grid--6{ grid-template-columns:repeat(6,1fr); } }

/* Tarjetas de lugar */
.lcc-venue{
  display:block; background:#fff; border-radius:16px; overflow:hidden; text-decoration:none;
  box-shadow:var(--lcc-shadow); transition:transform 220ms var(--ease-out), box-shadow 220ms var(--ease-out);
}
.lcc-venue:active{ transform:scale(.98); }
.lcc-venue__media{ display:block; aspect-ratio:3/2; overflow:hidden; background:var(--lcc-line); }
.lcc-venue__media img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform 400ms var(--ease-out); }
.lcc-venue__body{ display:block; padding:1rem 1.1rem 1.2rem; }
.lcc-venue__name{ display:block; font-family:'Poppins',sans-serif; font-weight:700; color:var(--lcc-dark); font-size:1.05rem; }
.lcc-venue__zone{ display:block; color:var(--lcc-muted); font-size:.9rem; margin-top:.2rem; }
@media (hover:hover) and (pointer:fine){
  .lcc-venue:hover{ transform:translateY(-4px); box-shadow:var(--lcc-shadow-h); }
  .lcc-venue:hover .lcc-venue__media img{ transform:scale(1.04); }
}

/* Tipos de evento */
.lcc-type{ background:var(--lcc-light); border:1px solid var(--lcc-line); border-radius:16px; padding:1.3rem 1.4rem; }
.lcc-type h3{ font-size:1.15rem; font-weight:700; margin:0 0 .4rem; }
.lcc-type p{ margin:0; color:var(--lcc-muted); }

/* Tarjetas de servicio y noticia */
.lcc-card{
  display:block; background:#fff; border-radius:14px; overflow:hidden; text-decoration:none; color:var(--lcc-dark);
  box-shadow:var(--lcc-shadow); transition:transform 200ms var(--ease-out), box-shadow 200ms var(--ease-out);
}
.lcc-card:active{ transform:scale(.97); }
.lcc-card__media{ display:block; aspect-ratio:4/3; overflow:hidden; background:var(--lcc-line); }
.lcc-card__media img{ width:100%; height:100%; object-fit:cover; display:block; }
.lcc-card__title{ display:block; padding:.8rem .9rem 1rem; font-weight:600; font-size:.95rem; line-height:1.3; }
.lcc-card--news .lcc-card__title{ font-size:1.02rem; }
@media (hover:hover) and (pointer:fine){
  .lcc-card:hover{ transform:translateY(-4px); box-shadow:var(--lcc-shadow-h); }
}

/* Banda CTA */
.lcc-cta{ background:linear-gradient(135deg,var(--lcc-primary) 0%,var(--lcc-dark) 100%); color:#fff; padding:clamp(2rem,5vw,3.2rem) 0; }
.lcc-cta__inner{ display:flex; flex-wrap:wrap; gap:1.25rem 2rem; align-items:center; justify-content:space-between; }
.lcc-cta h2{ color:#fff; font-size:clamp(1.4rem,2.6vw,2rem); font-weight:800; margin:0 0 .4rem; }
.lcc-cta p{ margin:0; color:rgba(255,255,255,.85); }

/* FAQ */
.lcc-faq details{ background:var(--lcc-light); border:1px solid var(--lcc-line); border-radius:14px; margin-bottom:.75rem; }
.lcc-faq summary{ cursor:pointer; list-style:none; padding:1rem 1.2rem; font-weight:600; color:var(--lcc-dark); display:flex; justify-content:space-between; gap:1rem; }
.lcc-faq summary::-webkit-details-marker{ display:none; }
.lcc-faq summary::after{ content:'+'; font-size:1.4rem; line-height:1; color:var(--lcc-primary); transition:transform 200ms var(--ease-out); }
.lcc-faq details[open] summary::after{ transform:rotate(45deg); }
.lcc-faq details p{ margin:0; padding:0 1.2rem 1.1rem; color:var(--lcc-muted); }

/* Botón flotante móvil */
.lcc-sticky-cta{
  position:fixed; left:50%; bottom:16px; z-index:999; transform:translateX(-50%);
  display:none; padding:.85rem 1.4rem; border-radius:999px; background:#1f9d55; color:#fff !important;
  font-weight:700; text-decoration:none; box-shadow:0 8px 22px rgba(0,0,0,.28);
  transition:transform 160ms var(--ease-out);
}
.lcc-sticky-cta:active{ transform:translateX(-50%) scale(.97); }
@media (max-width:767px){ .lcc-sticky-cta{ display:inline-flex; } }

/* Aparición al hacer scroll: opacidad + 8px, nunca scale(0) */
@media (prefers-reduced-motion:no-preference){
  .js [data-reveal] > *{
    opacity:0; transform:translateY(8px);
    transition:opacity 360ms var(--ease-out), transform 360ms var(--ease-out);
    transition-delay:calc(var(--i,0) * 50ms);
  }
  .js [data-reveal].is-in > *{ opacity:1; transform:none; }
}

/* ---------- Mejoras globales del tema base ---------- */
.nav-link{ transition:background-color 160ms ease, color 160ms ease; }
.more-link, .btn, button, input[type=submit]{ transition:transform 160ms var(--ease-out), background-color 160ms ease; }
.more-link:active, .btn:active, button:active, input[type=submit]:active{ transform:scale(.97); }
.post{ transition:transform 200ms var(--ease-out), box-shadow 200ms var(--ease-out); }
@media (hover:none){ .post:hover{ transform:none; } }
img{ max-width:100%; height:auto; }

@media (prefers-reduced-motion:reduce){
  .lcc-venue,.lcc-card,.lcc-btn,.lcc-venue__media img{ transition-property:background-color,color,box-shadow; }
}
