/* Bloques v3 (2026-10-22): estilos de los bloques del constructor. Solo se enlaza en las páginas que tienen bloques
   publicados (y para los administradores con el constructor). Colores y tipografía de la web. */
.lc-bloques { max-width: 72rem; margin: 2rem auto; padding: 0 1rem; color: #0f172a; }
.lc-bloques .lc-bloques { margin: 0; padding: 0; max-width: none; }
.lc-b + .lc-b { margin-top: 1rem; }
.lc-al-left { text-align: left; }
.lc-al-center { text-align: center; }
.lc-al-right { text-align: right; }
.lc-b-heading { font-weight: 700; line-height: 1.2; letter-spacing: -.01em; color: #0f172a; }
h2.lc-b-heading { font-size: clamp(1.35rem, 1.2rem + .6vw, 1.6rem); }
h3.lc-b-heading { font-size: 1.2rem; }
h4.lc-b-heading { font-size: 1.1rem; }
.lc-b-text { line-height: 1.65; color: #1e293b; }
.lc-b-text a, .lc-b-card__text a { color: #0d6efd; text-decoration: underline; }
.lc-b-btnrow { margin: 0; }
.lc-bloques a.lc-btn { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-height: 2.75rem; padding: .65rem 1.25rem;
    border-radius: .6rem; border: 2px solid transparent; font-weight: 700; line-height: 1.2; text-decoration: none; transition: background-color .15s, transform .15s; }
.lc-bloques a.lc-btn:hover { transform: translateY(-1px); }
.lc-bloques a.lc-btn:focus-visible { outline: 3px solid #f59e0b; outline-offset: 2px; }
.lc-bloques a.lc-btn--primary { background: #0d6efd; color: #fff; }
.lc-bloques a.lc-btn--primary:hover { background: #0b5ed7; color: #fff; }
.lc-bloques a.lc-btn--secondary { background: #0f172a; color: #fff; }
.lc-bloques a.lc-btn--secondary:hover { background: #1e293b; color: #fff; }
.lc-bloques a.lc-btn--outline { border-color: #0d6efd; color: #0d6efd; background: transparent; }
.lc-bloques a.lc-btn--outline:hover { background: #e7f0ff; }
.lc-bloques a.lc-btn--link { padding: 0; min-height: 0; color: #0d6efd; text-decoration: underline; border: 0; }
.lc-b-image { margin-left: 0; margin-right: 0; }
.lc-b-image img { display: block; max-width: 100%; height: auto; border-radius: .75rem; }
.lc-img-full img { width: 100%; }
.lc-img-wide img { width: 100%; max-width: 56rem; margin: 0 auto; }
.lc-img-center img { max-width: min(100%, 36rem); margin: 0 auto; }
.lc-img-left { float: left; max-width: 45%; margin: 0 1.25rem 1rem 0; }
.lc-img-right { float: right; max-width: 45%; margin: 0 0 1rem 1.25rem; }
.lc-bloques::after, .lc-b-col::after { content: ""; display: table; clear: both; }
.lc-b-image figcaption { margin-top: .4rem; font-size: .875rem; color: #64748b; text-align: center; }
.lc-sp-xs { height: .5rem; } .lc-sp-s { height: 1rem; } .lc-sp-m { height: 2rem; } .lc-sp-l { height: 3.5rem; } .lc-sp-xl { height: 5rem; }
.lc-b-divider { border: 0; border-top: 1px solid #e2e8f0; margin: 1.5rem 0; }
.lc-div-dots { border-top: 3px dotted #cbd5e1; width: 6rem; margin-left: auto; margin-right: auto; }
.lc-b-cols { display: grid; gap: 1.5rem; }
.lc-gap-s { gap: .75rem; } .lc-gap-l { gap: 2.5rem; }
.lc-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lc-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lc-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 767px) { .lc-cols-stack { grid-template-columns: minmax(0, 1fr); } }
@media (min-width: 768px) and (max-width: 1023px) { .lc-cols-stack.lc-cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.lc-b-col > * + * { margin-top: 1rem; }
.lc-b-icontext { display: flex; gap: .85rem; align-items: flex-start; }
.lc-b-icon { flex: none; color: #0d6efd; }
.lc-b-icontext__title { font-weight: 700; margin: 0; }
.lc-b-icontext__text { margin: .2rem 0 0; color: #475569; line-height: 1.55; }
.lc-b-card { border: 1px solid #e2e8f0; border-radius: 1rem; background: #fff; overflow: hidden; box-shadow: 0 1px 2px rgba(15, 23, 42, .05); height: 100%; }
.lc-b-card__img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.lc-b-card__body { padding: 1rem 1.15rem 1.15rem; }
.lc-b-card__title { font-weight: 800; font-size: 1.1rem; margin: 0 0 .35rem; }
.lc-b-card__text { color: #475569; line-height: 1.55; }
.lc-b-card__cta { margin: .75rem 0 0; }
.lc-b-quote { margin-left: 0; margin-right: 0; padding: .75rem 0 .75rem 1.25rem; border-left: 4px solid #0d6efd; font-size: 1.15rem; color: #1e293b; }
.lc-b-quote p { margin: 0; font-style: italic; }
.lc-b-quote footer { margin-top: .5rem; font-size: .9rem; color: #64748b; font-style: normal; }
.lc-b-quote footer::before { content: "— "; }
.lc-b-faq { border-top: 1px solid #e2e8f0; }
.lc-b-faq__item { border-bottom: 1px solid #e2e8f0; }
.lc-b-faq__item summary { cursor: pointer; padding: .9rem 2rem .9rem 0; font-weight: 700; list-style: none; position: relative; }
.lc-b-faq__item summary::-webkit-details-marker { display: none; }
.lc-b-faq__item summary::after { content: "+"; position: absolute; right: .25rem; top: .75rem; font-size: 1.25rem; color: #0d6efd; }
.lc-b-faq__item[open] summary::after { content: "−"; }
.lc-b-faq__a { padding: 0 0 1rem; color: #475569; line-height: 1.6; }
.lc-b-faq__a p { margin: 0; }
.lc-b-video { margin: 0; }
@media (max-width: 640px) { .lc-img-left, .lc-img-right { float: none; max-width: 100%; margin: 0 0 1rem; } }
