/* fv2026 — CMS pages: comfortable reading (about 72 characters per line for text), responsive images and tables. */
.fv-cms .rte { font-size: 17px; line-height: 1.7; color: var(--fv-texto); }
.fv-cms .rte > p, .fv-cms .rte > ul, .fv-cms .rte > ol, .fv-cms .rte > h2, .fv-cms .rte > h3, .fv-cms .rte > h4, .fv-cms .rte > blockquote, .fv-cms .rte > dl { max-width: 72ch; }
.fv-cms .rte h1 { font: 600 30px/1.2 var(--fv-titulos); color: var(--fv-tinta); letter-spacing: -.015em; margin: 0 0 20px; text-transform: none; }
.fv-cms .rte h1 { font-size: clamp(24px, 4vw, 30px); }
.fv-cms .rte h2 { font-size: 22px; margin: 1.6em 0 .5em; }
.fv-cms .rte h3 { font-size: 19px; margin: 1.4em 0 .4em; }
.fv-cms .rte p { margin: 0 0 1em; }
.fv-cms .rte ul, .fv-cms .rte ol { padding-left: 1.3em; }
.fv-cms .rte li { margin-bottom: .35em; }
.fv-cms .rte a { text-decoration: underline; text-underline-offset: 3px; }
.fv-cms .rte img { max-width: 100%; height: auto !important; border-radius: var(--fv-r-m); }
.fv-cms .rte strong, .fv-cms .rte b { font-weight: 600; color: var(--fv-tinta); }
/* Tables pasted in the editor (shipping costs...): readable, scroll sideways on small screens */
.fv-cms .rte table { display: block; max-width: 100%; width: auto !important; overflow-x: auto; -webkit-overflow-scrolling: touch; border-collapse: collapse; margin: 0 0 1.4em; font-size: 15px; line-height: 1.45; background: #fff !important; border: 1px solid var(--fv-linea); border-radius: var(--fv-r-m); }
.fv-cms .rte table[border] { border: 1px solid var(--fv-linea); }
.fv-cms .rte th, .fv-cms .rte td { padding: 10px 14px !important; border: 1px solid var(--fv-linea-suave); background: transparent !important; vertical-align: middle; }
.fv-cms .rte tr { background: transparent !important; }
.fv-cms .rte tr:first-child td { background: var(--fv-fondo) !important; font-weight: 500; color: var(--fv-tinta); }
.fv-cms .rte [style*="font-family"] { font-family: inherit !important; }
.fv-cms .rte [style*="font-size"] { font-size: inherit !important; }
.fv-cms .rte iframe, .fv-cms .rte video { max-width: 100%; }
@media (max-width: 767px) { .fv-cms .rte { font-size: 16px; } }
.fv-cms-admin { display: flex; gap: 8px; margin: 8px 0 0; }

/* Left column: ps_cms.left_column = 1 on every page (CmsController override) shows the whole category tree.
   Default agreed for the new theme (spec P2): no columns on CMS pages. Hidden here until the integrator / owner decides. */
body#cms .fv-columnas.con-izquierda { grid-template-columns: minmax(0, 1fr); }
body#cms #left_column { display: none; }

/* Offers page generated by fvbanners (#fv-ofertas-page): full width banners, no reading width */
.fv-cms-ofertas .rte { max-width: none; }
#fv-ofertas-page .fv-bloque { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 0 0 16px; }
#fv-ofertas-page .fv-bloque1 { grid-template-columns: minmax(0, 1fr); }
#fv-ofertas-page .fv-bloque > * { width: auto !important; float: none !important; padding: 0 !important; margin: 0 !important; max-width: none; }
#fv-ofertas-page .fv-bloque::after, #fv-ofertas-page + .clear { display: none; }
#fv-ofertas-page img { display: block; width: 100%; border-radius: var(--fv-r-m); }
@media (max-width: 599px) { #fv-ofertas-page .fv-bloque { grid-template-columns: minmax(0, 1fr); gap: 12px; } }

/* CMS category */
.fv-cms-intro { font-size: 17px; max-width: 72ch; color: var(--fv-texto); }
.fv-cms-subtit { font-size: 20px; margin: 24px 0 12px; }
.fv-cms-lista { list-style: none; margin: 0; padding: 0; max-width: 640px; background: #fff; border: 1px solid var(--fv-linea); border-radius: var(--fv-r-l); }
.fv-cms-lista li + li { border-top: 1px solid var(--fv-linea-suave); }
.fv-cms-lista a { display: flex; align-items: center; min-height: 52px; padding: 0 20px; color: var(--fv-tinta); font-weight: 500; }
.fv-cms-lista a:hover { background: var(--fv-fondo); text-decoration: none; color: var(--fv-verde-oscuro); }
.fv-cms-form { max-width: 720px; margin-bottom: 28px; }
