/* ==========================================================================
   Muebles Cárdenas — Rediseño 2026
   Capa de estilos sobre la plantilla tx_mueblesc (Expose / Tx_Delicious).
   Se carga después de todos los CSS originales: no hace falta tocar LESS.
   ========================================================================== */

:root {
  --cd-green:       #8a9a1c;   /* barra superior */
  --cd-green-700:   #6f7d14;
  --cd-green-900:   #4f5a0d;   /* botones oscuros */
  --cd-lime:        #b9cc3a;   /* acentos y CTA */
  --cd-lime-200:    #e7edc0;
  --cd-ink:         #23271d;   /* títulos */
  --cd-text:        #4b5045;   /* cuerpo */
  --cd-muted:       #80857a;
  --cd-bg:          #f6f5f0;   /* fondo general */
  --cd-bg-2:        #efeee6;
  --cd-card:        #ffffff;
  --cd-line:        #e5e3da;
  --cd-dark:        #1e1f1c;   /* pie de página */
  --cd-radius:      14px;
  --cd-radius-sm:   10px;
  --cd-shadow:      0 1px 2px rgba(35,39,29,.06), 0 8px 24px rgba(35,39,29,.08);
  --cd-shadow-lg:   0 2px 4px rgba(35,39,29,.06), 0 18px 40px rgba(35,39,29,.14);
  --cd-serif:       "Merriweather", Georgia, "Times New Roman", serif;
  --cd-sans:        "Inter", "Helvetica Neue", Arial, sans-serif;
  --cd-script:      "Allura", "Brush Script MT", cursive;
  --cd-max:         1240px;
  --cd-gutter:      24px;
  --cd-header-h:    84px;
}

/* --------------------------------------------------------------------------
   1. Base
   -------------------------------------------------------------------------- */
html { scroll-behavior: smooth; }
body {
  background: var(--cd-bg) !important;
  color: var(--cd-text);
  font-family: var(--cd-sans) !important;
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body, input, button, select, textarea { font-family: var(--cd-sans); }
a { color: var(--cd-green-700); transition: color .2s ease; }
a:hover, a:focus { color: var(--cd-green-900); }
img { max-width: 100%; height: auto; }
h1, h2, h3, h4, h5, h6 { color: var(--cd-ink); font-family: var(--cd-serif); font-weight: 700; letter-spacing: -.01em; }
p { margin: 0 0 1em; }
::selection { background: var(--cd-lime); color: var(--cd-ink); }
:focus-visible { outline: 3px solid var(--cd-lime); outline-offset: 2px; }

/* Expose aplica alturas iguales con JavaScript (min-height en línea). El nuevo diseño usa flexbox. */
.block, #mainbody, #sidebar-a, #sidebar-b { min-height: 0 !important; }

/* Títulos de módulo: Lobster -> serif editorial */
.title, .block .title {
  font-family: var(--cd-serif) !important;
  font-size: 24px;
  line-height: 1.25;
  color: var(--cd-ink);
  padding: 0;
  margin: 0 0 14px;
}
.title span { color: inherit !important; }
.block .header .subtitle { font-family: var(--cd-sans); font-size: 14px; font-weight: 400; color: var(--cd-muted); margin: 0; }

/* --------------------------------------------------------------------------
   2. Rejilla: de 960px fijos a fluida
   -------------------------------------------------------------------------- */
.container,
#middle-wrap .container {
  width: auto !important;
  max-width: var(--cd-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--cd-gutter);
  padding-right: var(--cd-gutter);
  box-sizing: border-box;
}
.row { margin-left: 0; margin-right: 0; }

/* Filas de módulos -> flex */
section.row > .container,
#main-top, #main-bottom, #main {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
}
section.row > .container::before, section.row > .container::after,
#main-top::before, #main-top::after, #main-bottom::before, #main-bottom::after,
#main::before, #main::after { display: none !important; content: none !important; }

section.row > .container > .column,
#main-top > .column, #main-bottom > .column { float: none; box-sizing: border-box; display: flex; flex-direction: column; flex-grow: 1; }
section.row > .container > .column > .block,
#main-top > .column > .block, #main-bottom > .column > .block { flex: 1 1 auto; }
section.row > .container > .column > .block + .block,
#main-top > .column > .block + .block { flex: 0 0 auto; }

.container > .grid12, #main-top > .grid12, #main-bottom > .grid12 { width: 100%; }
.container > .grid9,  #main-top > .grid9,  #main-bottom > .grid9  { width: 75%; }
.container > .grid8,  #main-top > .grid8,  #main-bottom > .grid8  { width: 66.666%; }
.container > .grid6,  #main-top > .grid6,  #main-bottom > .grid6  { width: 50%; }
.container > .grid4,  #main-top > .grid4,  #main-bottom > .grid4  { width: 33.333%; }
.container > .grid3,  #main-top > .grid3,  #main-bottom > .grid3  { width: 25%; }
.container > .grid2,  #main-top > .grid2,  #main-bottom > .grid2  { width: 16.666%; }

/* Cuerpo: barra izq. | contenido | barra der. */
#main > #system-message-container { width: 100%; order: 0; }
#main > #mainbody, #main > #sidebar-a, #main > #sidebar-b {
  float: none; margin-left: 0 !important; margin-right: 0 !important; left: auto; right: auto;
  box-sizing: border-box;
}
#main > #sidebar-a { order: 1; }
#main > #mainbody  { order: 2; }
#main > #sidebar-b { order: 3; }
#main > * { flex-grow: 1; }
#main > .grid12 { width: 100%; }
#main > .grid9  { width: 75%; }
#main > .grid8  { width: 66.666%; }
#main > .grid6  { width: 50%; }
#main > .grid4  { width: 33.333%; }
#main > .grid3  { width: 25%; }

/* Columnas internas (content-top/bottom, sidebars) a ancho completo del contenedor padre */
#content-top, #content-bottom { display: flex; flex-wrap: wrap; }
#content-top::before, #content-top::after, #content-bottom::before, #content-bottom::after { display: none; }
#content-top > .column, #content-bottom > .column { float: none; flex: 1 1 0; min-width: 240px; width: auto !important; }
#sidebar-a > .column, #sidebar-b > .column { float: none; width: 100% !important; }

/* --------------------------------------------------------------------------
   3. Barra social superior (roof) -> se mueve al pie de página con JS
   -------------------------------------------------------------------------- */
#roof { display: none !important; }

/* --------------------------------------------------------------------------
   4. Cabecera fija (top)
   -------------------------------------------------------------------------- */
#top {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: var(--cd-green) !important;
  background-image: none !important;
  box-shadow: none;
  transition: box-shadow .25s ease;
}
body.cd-scrolled #top { box-shadow: 0 6px 24px rgba(30,31,28,.18); }
#top > .container {
  align-items: center;
  flex-wrap: nowrap;
  min-height: var(--cd-header-h);
  gap: 20px;
}
#top .column { width: auto !important; display: block; }
#top .top-1 { flex: 0 0 auto; }
#top .top-2 { flex: 1 1 auto; }
#top .block { margin: 0; padding: 0; background: none; }

/* Logo con fondo transparente (mismo arte que logo.png) */
#logo { margin: 0; line-height: 0; }
#logo a {
  background: url(../images/logo-cardenas.png) no-repeat left center / contain !important;
  width: 190px !important;
  height: 76px !important;
  display: block;
}
.menu-toggle, #mobile-menu { display: none !important; }

/* Menú principal (mega menú de Expose) */
#menu { font-family: var(--cd-sans) !important; }
#menu ul.level-0 { text-align: right; margin: 0; padding: 0; }
#menu ul.level-0 > li { margin-left: 4px; border-radius: 0; background: none !important; }
#menu ul.level-0 > li.mega > a.mega,
#menu ul.level-0 > li.mega > span.mega { padding: 0; background: none !important; display: block; }
#menu ul.level-0 > li > a > span.menu-title,
#menu ul.level-0 > li > span > span.menu-title {
  display: inline-block;
  height: auto;
  line-height: 1;
  padding: 12px 14px;
  font-size: 15px;
  font-weight: 600;
  color: #fff !important;
  letter-spacing: .01em;
  position: relative;
}
#menu ul.level-0 > li > a > span.menu-title::after {
  content: "";
  position: absolute;
  left: 14px; right: 14px; bottom: 2px;
  height: 2px;
  background: var(--cd-lime-200);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s ease;
}
#menu ul.level-0 > li:hover > a > span.menu-title::after,
#menu ul.level-0 > li.active > a > span.menu-title::after { transform: scaleX(1); }
#menu ul.level-0 > li.has-submenu > a > span.menu-title { padding-right: 28px; }
#menu ul.level-0 > li.has-submenu > a > span.menu-title::before {
  content: "";
  position: absolute;
  right: 12px; top: 50%;
  width: 6px; height: 6px;
  margin-top: -5px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  opacity: .85;
}

/* Submenú desplegable */
#menu li.mega .childcontent {
  background: #fff !important;
  border: 0 !important;
  border-radius: var(--cd-radius-sm);
  box-shadow: var(--cd-shadow-lg) !important;
  padding: 8px !important;
  margin-top: 6px;
}
#menu .childcontent-inner { background: none; }
#menu ul.level-1, #menu ul.level-1 li { list-style: none !important; }
#menu ul.level-1 li.mega { border: 0 !important; margin: 0 !important; text-align: left; }
#menu ul.level-1 > li.mega > a.mega { padding: 0 !important; display: block; border-radius: 8px; }
#menu ul.level-1 li span.menu-title {
  display: block;
  padding: 10px 14px;
  color: var(--cd-ink) !important;
  font-size: 14.5px;
  font-weight: 500;
  border-radius: 8px;
}
#menu ul.level-1 li:hover span.menu-title,
#menu ul.level-1 li.active span.menu-title { background: var(--cd-bg); color: var(--cd-green-900) !important; }

/* Acciones de la cabecera */
.cd-header-actions { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.cd-icon-btn {
  width: 42px; height: 42px;
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  color: #fff;
  border: 1.5px solid rgba(255,255,255,.55);
  transition: background .2s ease, border-color .2s ease;
}
.cd-icon-btn:hover { background: rgba(255,255,255,.14); border-color: #fff; color: #fff; }
.cd-wa-btn::before, .cd-wa-float::before {
  content: "";
  width: 22px; height: 22px;
  background: currentColor;
  -webkit-mask: var(--cd-ico-wa) no-repeat center / contain;
          mask: var(--cd-ico-wa) no-repeat center / contain;
}
.cd-burger {
  display: none;
  width: 44px; height: 44px;
  border: 0; border-radius: 10px;
  background: rgba(255,255,255,.14);
  cursor: pointer;
  position: relative;
  padding: 0;
}
.cd-burger span, .cd-burger span::before, .cd-burger span::after {
  position: absolute; left: 12px; right: 12px; height: 2px; background: #fff; border-radius: 2px; content: "";
  transition: transform .25s ease, opacity .2s ease;
}
.cd-burger span { top: 21px; }
.cd-burger span::before { left: 0; right: 0; top: -7px; }
.cd-burger span::after  { left: 0; right: 0; top: 7px; }
body.cd-nav-open .cd-burger span { background: transparent; }
body.cd-nav-open .cd-burger span::before { transform: translateY(7px) rotate(45deg); }
body.cd-nav-open .cd-burger span::after  { transform: translateY(-7px) rotate(-45deg); }

/* --------------------------------------------------------------------------
   5. Hero: texto de bienvenida (header) sobre el slider (utility)
   -------------------------------------------------------------------------- */
.cd-hero { position: relative; background: var(--cd-dark); }
#header { background: none; }
#header .block { margin: 0; padding: 0; background: none; text-align: left; }
#header .custom h1, #header .custom h2,
#header .custom h1 span, #header .custom h2 span {
  font-family: var(--cd-serif) !important;
  font-weight: 900;
  color: #fff;
  text-shadow: none;
}
#header .custom h1, #header .custom h2 { font-style: normal !important; font-size: clamp(30px, 4.4vw, 54px); line-height: 1.12; margin: 0 0 18px; }

/* Sin slider: banda verde oscura */
.cd-hero:not(.has-slider) #header { padding: 56px 0; background: linear-gradient(120deg, var(--cd-green-900), var(--cd-green)); }

/* Con slider */
.cd-hero.has-slider #utility > .container { max-width: none; padding: 0; }
.cd-hero.has-slider #utility .column { width: 100% !important; }
.cd-hero.has-slider #utility .block { margin: 0; padding: 0; }
.cd-hero { --cd-hero-h: clamp(480px, 64vh, 640px); }
.cd-hero.has-slider .xslider_container { height: var(--cd-hero-h); overflow: hidden; }
.cd-hero.has-slider .xslider_wrap,
.cd-hero.has-slider .xslider_fakehover { height: var(--cd-hero-h) !important; }
.cd-hero.has-slider .xsliderSlide img {
  width: 100% !important; height: 100% !important; object-fit: cover;
  margin: 0 !important; top: 0 !important; left: 0 !important; max-width: none !important;
}
/* Solo un bloque de texto sobre el slider */
.cd-hero.has-slider #header .column ~ .column,
.cd-hero.has-slider #header .block ~ .block { display: none !important; }
.cd-hero.has-slider .xslider_wrap { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; background: var(--cd-dark) !important; float: none; }
.cd-hero.has-slider .xslider_pie, .cd-hero.has-slider .xslider_commands { display: none !important; }
.cd-hero.has-slider::after {
  content: "";
  position: absolute; inset: 0;
  z-index: 3;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(22,24,18,.82) 0%, rgba(22,24,18,.55) 38%, rgba(22,24,18,.08) 70%, rgba(22,24,18,0) 100%);
}
.cd-hero.has-slider #header {
  position: absolute; inset: 0;
  z-index: 4;
  overflow: hidden;
  display: flex; align-items: center;
  pointer-events: none;
}
.cd-hero.has-slider #header > .container { width: 100% !important; }
.cd-hero.has-slider #header .column { width: 100% !important; max-width: 620px; }
.cd-hero.has-slider #header a, .cd-hero.has-slider #header button { pointer-events: auto; }
.cd-hero .xslider_prev, .cd-hero .xslider_next {
  opacity: 1 !important;
  z-index: 5 !important;
  width: 46px !important; height: 46px !important;
  top: auto !important; bottom: 32px !important;
  margin: 0 !important;
  border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,.75);
  background: rgba(0,0,0,.18) !important;
  backdrop-filter: blur(4px);
  cursor: pointer;
}
.cd-hero .xslider_prev { left: auto !important; right: 92px !important; }
.cd-hero .xslider_next { right: 32px !important; }
.cd-hero .xslider_prev span, .cd-hero .xslider_next span { display: none !important; }
.cd-hero .xslider_prev::before, .cd-hero .xslider_next::before {
  content: ""; position: absolute; top: 50%; left: 50%;
  width: 9px; height: 9px; border-top: 2px solid #fff; border-right: 2px solid #fff;
}
.cd-hero .xslider_prev::before { transform: translate(-30%, -50%) rotate(-135deg); }
.cd-hero .xslider_next::before { transform: translate(-70%, -50%) rotate(45deg); }
.cd-hero .xslider_prev:hover, .cd-hero .xslider_next:hover { background: rgba(255,255,255,.18) !important; }

/* Contenido del bloque "hero" (ver BLOQUES_HTML) */
.cd-eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--cd-sans);
  font-size: 12.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
  color: var(--cd-lime);
  margin: 0 0 14px;
}
.cd-eyebrow::before { content: ""; width: 26px; height: 3px; border-radius: 2px; background: var(--cd-lime); }
.cd-hero-text h1, .cd-hero-text h2 { color: #fff !important; }
.cd-hero-text em, .cd-accent { font-style: normal; color: var(--cd-lime) !important; }
.cd-hero-text p { color: rgba(255,255,255,.88); font-size: 17px; max-width: 470px; margin-bottom: 26px; }

/* --------------------------------------------------------------------------
   6. Botones
   -------------------------------------------------------------------------- */
.cd-btn,
.button, .readon, .readmore, .btn, .btn-primary, button.validate, input[type="submit"] {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  font-family: var(--cd-sans) !important;
  font-size: 15px; font-weight: 600; line-height: 1.2;
  padding: 13px 24px !important;
  border-radius: 999px !important;
  border: 0 !important;
  background: var(--cd-green-900) !important;
  background-image: none !important;
  color: #fff !important;
  text-shadow: none !important;
  box-shadow: none !important;
  text-decoration: none !important;
  cursor: pointer;
  transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.btn-primary::before { display: none !important; }
.cd-btn:hover, .button:hover, .readon:hover, .readmore:hover, .btn:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(79,90,13,.28) !important; color: #fff !important; }
.cd-btn::after { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--cd-ico-arrow) no-repeat center / contain; mask: var(--cd-ico-arrow) no-repeat center / contain; }
.cd-btn.cd-btn-lime { background: var(--cd-lime) !important; color: var(--cd-ink) !important; }
.cd-btn.cd-btn-lime:hover { color: var(--cd-ink) !important; box-shadow: 0 8px 20px rgba(185,204,58,.35) !important; }
.cd-btn.cd-btn-outline { background: transparent !important; color: var(--cd-green-900) !important; border: 1.5px solid var(--cd-green-700) !important; }
.cd-btn.cd-btn-wa::after { -webkit-mask-image: var(--cd-ico-wa); mask-image: var(--cd-ico-wa); width: 18px; height: 18px; }
.cd-btn.cd-btn-sm { font-size: 13px; padding: 9px 16px !important; }

/* --------------------------------------------------------------------------
   7. Categorías (feature): tarjetas con imagen
   -------------------------------------------------------------------------- */
#feature { padding: 36px 0 8px; background: none; }
#feature > .container { gap: 20px; flex-wrap: nowrap; }
#feature .column { flex: 1 1 0; width: auto !important; min-width: 0; }
#feature .block {
  position: relative;
  margin: 0; padding: 0;
  border-radius: var(--cd-radius);
  overflow: hidden;
  background: var(--cd-dark) !important;
  color: #fff !important;
  box-shadow: var(--cd-shadow) !important;
  aspect-ratio: 9 / 10;
  cursor: pointer;
  transition: transform .3s ease, box-shadow .3s ease;
}
#feature .block:hover { transform: translateY(-4px); box-shadow: var(--cd-shadow-lg) !important; }
#feature .block > .content { position: absolute; inset: 0; }
#feature .block .custom, #feature .block .custom p { position: absolute; inset: 0; margin: 0; font-size: 0; line-height: 0; color: transparent; }
#feature .block .custom a { position: static; font-size: 0; }
#feature .block .custom img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .6s ease;
}
#feature .block:hover .custom img { transform: scale(1.05); }
#feature .block > .header {
  position: absolute; left: 0; right: 0; bottom: 0;
  z-index: 2;
  padding: 70px 72px 20px 20px;
  background: linear-gradient(180deg, rgba(20,22,16,0) 0%, rgba(20,22,16,.78) 100%);
  pointer-events: none;
}
#feature .block .title { color: #fff !important; font-size: 22px; margin: 0; padding: 0; text-shadow: 0 1px 8px rgba(0,0,0,.25); }
#feature .block .subtitle { color: rgba(255,255,255,.85); font-family: var(--cd-sans); font-size: 13px; font-weight: 400; margin: 4px 0 0; }
#feature .block > .header::after {
  content: "";
  position: absolute; right: 18px; bottom: 20px;
  width: 36px; height: 36px; border-radius: 50%;
  background: var(--cd-lime) var(--cd-ico-arrow-dark) no-repeat center / 16px;
  transition: transform .25s ease;
}
#feature .block:hover > .header::after { transform: translateX(3px); }

/* --------------------------------------------------------------------------
   8. Zona central (middle-wrap)
   -------------------------------------------------------------------------- */
#middle-wrap { padding: 28px 0 8px; }
#middle-wrap .container { margin-top: 0 !important; margin-bottom: 0 !important; background: none !important; border-radius: 0; box-shadow: none !important; }
#main { gap: 0; }
#mainbody, #sidebar-a, #sidebar-b { background: none !important; border-radius: 0 !important; }
#sidebar-a .block, #sidebar-b .block { background: none; box-shadow: none; text-shadow: none; color: var(--cd-text); }

/* Contenido de artículos */
#component > .block { margin: 10px; padding: clamp(20px, 3vw, 40px); background: var(--cd-card); border-radius: var(--cd-radius); box-shadow: var(--cd-shadow); }
#component > .block:has(.blog-featured:empty) { display: none; }
body.cd-empty-component #component { display: none; }
.article header .title, .article > header h1, .page-header h1, .page-header h2, #component h1.title {
  font-size: clamp(28px, 3.4vw, 40px) !important;
  line-height: 1.15;
  margin: 0 0 20px;
}
.article header .title a, .page-header a { color: var(--cd-ink); }
.article-body { font-size: 16.5px; }
.article-body img { border-radius: var(--cd-radius-sm); }
.article-body table { max-width: 100% !important; height: auto !important; border-collapse: separate; border-spacing: 0 6px; }
.article-body td { padding: 8px 12px; vertical-align: middle; }
.article-body td.box3 { background: var(--cd-ink) !important; background-image: none !important; color: #fff !important; text-shadow: none !important; border-radius: 8px 0 0 8px; font-weight: 600; }
.article-body td.alert-info { background: var(--cd-bg) !important; color: var(--cd-ink) !important; border: 0; border-radius: 0 8px 8px 0; }
.article-body td.alert-success, .article-body td.title, .article-body td.hide-text { background: none !important; }

/* Promos de portada (content-top, sidebars) */
#content-top .block, #sidebar-a .block, #sidebar-b .block { margin: 10px; padding: 0; }
#content-top .block img, #sidebar-a .block img, #sidebar-b .block img { display: block; width: 100%; border-radius: var(--cd-radius); box-shadow: var(--cd-shadow); }
body.homepage #content-top .custom img, body.homepage #sidebar-a .custom img, body.homepage #sidebar-b .custom img { aspect-ratio: 16 / 10; object-fit: cover; object-position: center bottom; }
#sidebar-a .custom p, #sidebar-b .custom p { margin: 0; }

/* Menú lateral (artículos) */
.nav-list { padding: 0 !important; margin: 0; list-style: none; }
.block._menu, .block.module[class*="_menu"] { background: var(--cd-card) !important; border-radius: var(--cd-radius); box-shadow: var(--cd-shadow); padding: 22px !important; }
.nav-list li a { display: block; padding: 9px 12px; border-radius: 8px; color: var(--cd-ink) !important; text-shadow: none !important; border: 0 !important; box-shadow: none !important; background: none; }
.block[class*="_menu"] .title { border: 0 !important; box-shadow: none !important; background: none !important; color: var(--cd-ink) !important; text-shadow: none !important; padding: 0 0 8px !important; margin: 0 !important; }
.nav-list > li > a:hover, .nav-list > .active > a, .nav-list > .active > a:hover { background: var(--cd-bg) !important; color: var(--cd-green-900) !important; }
.nav-list ul { list-style: none; margin: 0 0 0 12px; padding: 0; }

/* main-top / main-bottom */
#main-top { padding-top: 0; }
#main-bottom { box-shadow: none !important; }
#main-top .block, #main-bottom .block { margin: 10px; padding: clamp(20px, 3vw, 32px); background: var(--cd-card); border-radius: var(--cd-radius); box-shadow: var(--cd-shadow); }
#main-top .block.cd-plain, #main-bottom .block.cd-plain, .block.cd-plain { background: none !important; box-shadow: none !important; padding: 0 !important; }
#main-bottom .title, #main-top .title { font-size: 26px; }

/* Pestañas Xpert (p. ej. "Cómo llegar") */
.txtabs-wrap { background: none !important; border: 0 !important; box-shadow: none !important; }
.txtabs-nav { background: none !important; background-image: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; margin: 0 0 16px !important; display: flex; flex-wrap: wrap; gap: 8px; }
.txtabs-nav::before, .txtabs-nav::after { display: none !important; }
.txtabs-nav, .txtabs-nav li { list-style: none !important; }
.txtabs-nav li { width: auto !important; float: none !important; margin: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; }
.txtabs-nav li a {
  display: block; padding: 10px 18px !important;
  border-radius: 999px !important;
  background: var(--cd-bg) !important; background-image: none !important;
  border: 1px solid var(--cd-line) !important;
  color: var(--cd-ink) !important; text-shadow: none !important; box-shadow: none !important;
  font-family: var(--cd-sans); font-size: 14px; font-weight: 600; line-height: 1.2 !important; height: auto !important; cursor: pointer;
}
.txtabs-nav li.active a, .txtabs-nav li a:hover { background: var(--cd-green-900) !important; border-color: var(--cd-green-900) !important; color: #fff !important; }
.txtabs-content { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; }
.txtabs-pane-in { padding: 0 !important; }
.txtabs-content p { color: var(--cd-text); }
.txtabs-content iframe, #main-bottom iframe { width: 100% !important; border: 0; border-radius: var(--cd-radius); display: block; min-height: 340px; }

/* Breadcrumbs */
#breadcrumbs { margin: 0; padding: 18px 0 0; }
#breadcrumbs .block { margin: 0 10px; padding: 0; background: none; }
#breadcrumbs .block > .header { display: none; }
.breadcrumb, .breadcrumb * { text-shadow: none !important; color: var(--cd-muted) !important; }
.breadcrumb a, .breadcrumb a * { color: var(--cd-green-700) !important; }
.breadcrumb { background: none !important; padding: 0 !important; margin: 0 !important; font-size: 13.5px; color: var(--cd-muted); box-shadow: none !important; border: 0 !important; }
.breadcrumb a { color: var(--cd-green-700); }

/* --------------------------------------------------------------------------
   9. Franja inferior (bottom) + posición footer
   -------------------------------------------------------------------------- */
#bottom { background: var(--cd-bg-2) !important; padding: 40px 0 28px; margin-top: 40px; line-height: 1.6; border-top: 1px solid var(--cd-line); }
#bottom .block { margin: 10px; padding: 0; background: none; }
#bottom .title { font-size: 20px; }
#bottom a { color: var(--cd-green-700); }
#bottom .custom img { border-radius: var(--cd-radius-sm); }
#bottom table { float: none !important; margin: 0; }
#bottom .custom { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 16px; }
#bottom .custom > p { margin: 0; }
#bottom .custom img[style*="float"] { float: none !important; }
#footer { background: none !important; margin: 0 !important; padding: 12px 0 0; line-height: 1.6; }
#footer .block { margin: 10px; padding: 0; background: none; }
#bottom + #footer { margin-top: 0 !important; }

/* Contenedores flex del pie: sin pseudo-elementos clearfix */
#cd-footer .container::before, #cd-footer .container::after { display: none !important; content: none !important; }
body > .fit-vids-style { height: 0; overflow: hidden; }
.cd-hidden { display: none !important; }

/* Twitter dejó de funcionar: oculta los restos vacíos de Xpert Tweets */
.xt-list li:has(.xt-tweet:empty), #xt-wrap:not(:has(.xt-tweet:not(:empty))) { display: none; }

/* --------------------------------------------------------------------------
   10. Pie de página nuevo
   -------------------------------------------------------------------------- */
#cd-footer { background: var(--cd-dark); color: rgba(255,255,255,.7); padding: 44px 0 26px; font-size: 14px; }
#cd-footer a { color: rgba(255,255,255,.85); }
#cd-footer a:hover { color: var(--cd-lime); }
#cd-footer > .container { padding-left: 0; padding-right: 0; width: calc(100% - 2 * var(--cd-gutter)) !important; max-width: calc(var(--cd-max) - 2 * var(--cd-gutter)); }
.cd-footer-top { display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; padding-bottom: 28px; border-bottom: 1px solid rgba(255,255,255,.12); }
.cd-footer-logo img { width: 170px; height: auto; display: block; }
.cd-footer-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 26px; }
.cd-footer-nav a { font-weight: 500; }
.cd-footer-social { display: flex; gap: 12px; }
.cd-footer-social:empty { display: none; }
.cd-footer-social a {
  width: 38px; height: 38px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.08);
  color: #fff !important;
  transition: background .2s ease, transform .2s ease;
}
.cd-footer-social a:hover { background: var(--cd-lime); color: var(--cd-ink) !important; transform: translateY(-2px); }
.cd-footer-social a::before { content: ""; width: 18px; height: 18px; background: currentColor; -webkit-mask: var(--ico) no-repeat center / contain; mask: var(--ico) no-repeat center / contain; }
.cd-footer-social .cd-s-facebook  { --ico: var(--cd-ico-fb); }
.cd-footer-social .cd-s-twitter   { --ico: var(--cd-ico-x); }
.cd-footer-social .cd-s-instagram { --ico: var(--cd-ico-ig); }
.cd-footer-social .cd-s-youtube   { --ico: var(--cd-ico-yt); }
.cd-footer-social .cd-s-whatsapp  { --ico: var(--cd-ico-wa); }
.cd-footer-social .cd-s-link      { --ico: var(--cd-ico-arrow); }
.cd-footer-modules { padding-top: 18px; }
.cd-footer-modules .block { margin: 0; padding: 0; background: none; color: inherit; }
.cd-footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-top: 22px; }
.cd-footer-bottom p { margin: 0; }
#cd-footer { padding-bottom: 34px; }
@media (min-width: 768px) { .cd-footer-bottom { padding-right: 190px; } }
.cd-copy { font-size: 13px; color: rgba(255,255,255,.55); }
.cd-tagline { font-family: var(--cd-script); font-size: 30px; line-height: 1; color: var(--cd-lime); }

/* Botón flotante de WhatsApp */
.cd-wa-float {
  position: fixed; right: 22px; bottom: 22px; z-index: 1100;
  display: inline-flex; align-items: center; gap: 10px;
  height: 56px; padding: 0 18px 0 16px;
  border-radius: 999px;
  background: #25d366; color: #fff !important;
  font-weight: 600; font-size: 15px;
  box-shadow: 0 10px 28px rgba(37,211,102,.38);
  transition: transform .2s ease, box-shadow .2s ease;
}
.cd-wa-float::before { width: 26px; height: 26px; }
.cd-wa-float:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(37,211,102,.45); }
#absolute { right: 22px; bottom: 92px; }

/* --------------------------------------------------------------------------
   11. Catálogo (galería mod_txgallery)
   -------------------------------------------------------------------------- */
#banner-top { width: 100%; border-radius: var(--cd-radius); box-shadow: var(--cd-shadow); margin-bottom: 8px; }
#component .article-body > div:first-child:has(> #banner-top) { line-height: 0; }
body.cd-catalog #component > .block { background: none; box-shadow: none; padding: 0; margin: 10px 10px 0; }
#content-bottom .block { margin: 10px; padding: 0; background: none; }
[class*="mod-txgallery-"] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(236px, 1fr));
  gap: 22px;
}
[class*="mod-txgallery-"] > .row { display: contents; }
[class*="mod-txgallery-"]::before, [class*="mod-txgallery-"]::after,
[class*="mod-txgallery-"] > .row::before, [class*="mod-txgallery-"] > .row::after { display: none !important; content: none !important; }
[class*="mod-txgallery-"] .col-md-3 { width: 100% !important; max-width: none !important; float: none !important; padding: 0 !important; margin: 0 !important; position: relative; min-width: 0; justify-self: stretch; }
[class*="mod-txgallery-"] .col-md-3 > a:not(:has(*)) { display: none; }
[class*="mod-txgallery-"] .gallery {
  position: relative;
  width: 100% !important;
  float: none !important;
  height: 100%;
  box-sizing: border-box;
  margin: 0 !important; padding: 0 !important;
  background: var(--cd-card) !important;
  border: 1px solid var(--cd-line) !important;
  border-radius: var(--cd-radius) !important;
  box-shadow: 0 1px 2px rgba(35,39,29,.04) !important;
  overflow: hidden;
  transition: transform .25s ease, box-shadow .25s ease;
}
[class*="mod-txgallery-"] .gallery:hover { transform: translateY(-3px); box-shadow: var(--cd-shadow-lg) !important; }
[class*="mod-txgallery-"] .gallery > a { display: block; color: inherit; text-decoration: none; }
[class*="mod-txgallery-"] .met-box { width: 100% !important; display: block !important; position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--cd-bg-2); padding: 0 !important; margin: 0 !important; border: 0 !important; box-shadow: none !important; }
[class*="mod-txgallery-"] .met-box img { width: 100% !important; height: 100% !important; object-fit: cover; transition: transform .6s ease; }
[class*="mod-txgallery-"] .gallery:hover .met-box img { transform: scale(1.04); }
[class*="mod-txgallery-"] .lds-ellipsis { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
[class*="mod-txgallery-"] .caption { text-align: left !important; padding: 14px 16px 18px !important; background: none !important; }
[class*="mod-txgallery-"] .caption h5.title,
[class*="mod-txgallery-"] .caption .title {
  font-family: var(--cd-sans) !important;
  font-size: 15.5px !important; font-weight: 600 !important; line-height: 1.35;
  color: var(--cd-ink) !important;
  margin: 0 !important; padding: 0 56px 0 0 !important;
  text-shadow: none !important;
}
.cd-g-detail { display: block; font-size: 13px; line-height: 1.45; color: var(--cd-muted); margin-top: 4px; padding-right: 56px; }
.cd-g-price { display: block; font-size: 15px; font-weight: 700; color: var(--cd-ink); margin-top: 8px; }
.cd-g-wa, [class*="mod-txgallery-"] .gallery > a.cd-g-wa {
  position: absolute; right: 14px; bottom: 14px; z-index: 2;
  width: 40px; height: 40px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--cd-green-900); color: #fff !important;
  transition: transform .2s ease, background .2s ease;
}
.cd-g-wa::before { content: ""; width: 19px; height: 19px; background: currentColor; -webkit-mask: var(--cd-ico-wa) no-repeat center / contain; mask: var(--cd-ico-wa) no-repeat center / contain; }
.cd-g-wa:hover { background: #25d366; transform: scale(1.06); }
.cd-g-count { grid-column: 1 / -1; margin: 6px 0 -6px; font-size: 14px; color: var(--cd-muted); }

/* --------------------------------------------------------------------------
   12. Bloques nuevos para módulos personalizados (ver BLOQUES_HTML.txt)
   -------------------------------------------------------------------------- */
.cd-section-head h2, .cd-section-head h3 { font-size: clamp(26px, 3vw, 36px); line-height: 1.2; margin: 0 0 12px; }
.cd-section-head p { color: var(--cd-text); max-width: 460px; }
.cd-eyebrow.cd-dark { color: var(--cd-muted); }
.cd-eyebrow.cd-dark::before { background: var(--cd-lime); }

/* Destacados */
.cd-featured { display: grid; grid-template-columns: minmax(240px, 1fr) 2.6fr; gap: 36px; align-items: center; }
.cd-products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; }
.cd-product { margin: 0; background: var(--cd-card); border: 1px solid var(--cd-line); border-radius: var(--cd-radius); overflow: hidden; transition: transform .25s ease, box-shadow .25s ease; position: relative; }
.cd-product:hover { transform: translateY(-3px); box-shadow: var(--cd-shadow-lg); }
.cd-product a { display: block; color: inherit; text-decoration: none; }
.cd-product img { display: block; width: 100%; aspect-ratio: 5 / 4; object-fit: cover; border-radius: 0 !important; box-shadow: none !important; }
.cd-product-info { display: block; padding: 14px 56px 16px 16px; font-size: 13px; color: var(--cd-muted); line-height: 1.4; }
.cd-product-info strong { display: block; font-size: 15px; color: var(--cd-ink); font-weight: 600; }
.cd-product a::after { content: ""; position: absolute; right: 14px; bottom: 18px; width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--cd-line); background: var(--cd-ico-arrow-dark) no-repeat center / 13px; }

/* ¿Por qué elegirnos? */
.cd-why { display: grid; grid-template-columns: 1.1fr 2fr 1fr; gap: 32px; align-items: center; background: var(--cd-card); border-radius: var(--cd-radius); padding: clamp(24px, 3.5vw, 44px); box-shadow: var(--cd-shadow); position: relative; overflow: hidden; }
.cd-why::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: var(--cd-lime); }
.cd-why h2, .cd-why h3 { font-size: clamp(24px, 2.6vw, 32px); line-height: 1.2; margin: 0; }
.cd-features { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
.cd-features li { text-align: center; padding: 6px 12px; font-size: 14px; line-height: 1.35; color: var(--cd-text); border-left: 1px solid var(--cd-line); }
.cd-features li:first-child { border-left: 0; }
.cd-features li::before { content: ""; display: block; width: 34px; height: 34px; margin: 0 auto 12px; background: var(--cd-green); -webkit-mask: var(--ico) no-repeat center / contain; mask: var(--ico) no-repeat center / contain; }
.cd-i-shield { --ico: var(--cd-ico-shield); }
.cd-i-truck  { --ico: var(--cd-ico-truck); }
.cd-i-people { --ico: var(--cd-ico-people); }
.cd-i-home   { --ico: var(--cd-ico-home); }
.cd-i-pin    { --ico: var(--cd-ico-pin); }
.cd-i-award  { --ico: var(--cd-ico-award); }
.cd-why-cta { border-left: 1px solid var(--cd-line); padding-left: 28px; }
.cd-why-cta p { font-size: 14px; margin-bottom: 14px; }
.cd-why-cta strong { display: block; color: var(--cd-ink); font-size: 15px; margin-bottom: 4px; }

/* Contacto: la página usa todo el ancho (oculta barras laterales solo allí) */
#main:has(.cd-contact) > #sidebar-a, #main:has(.cd-contact) > #sidebar-b { display: none !important; }
#main:has(.cd-contact) > #mainbody { width: 100% !important; }

/* Contacto: asesores */
.cd-contact-intro { margin-bottom: 26px; }
.cd-contact-main { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 320px); gap: 24px; align-items: start; margin-bottom: 40px; }
.cd-advisors { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.cd-advisor { background: var(--cd-card); border: 1px solid var(--cd-line); border-radius: var(--cd-radius); padding: 22px 16px 18px; text-align: center; margin: 0 !important; }
.cd-avatar {
  display: flex; align-items: center; justify-content: center;
  width: 72px; height: 72px; margin: 0 auto 14px;
  border-radius: 50%;
  background: var(--cd-lime-200); color: var(--cd-green-900);
  font-family: var(--cd-serif); font-size: 24px; font-weight: 700; line-height: 1;
}
.cd-general .cd-avatar { font-size: 0; background: var(--cd-lime-200) var(--cd-ico-headset) no-repeat center / 32px; }
.cd-advisor h4 { font-family: var(--cd-sans); font-size: 16px; font-weight: 600; margin: 0 0 2px; }
.cd-advisor p { margin: 0 0 12px; font-size: 13px; color: var(--cd-muted); }
.cd-advisor .cd-phone { display: block; font-size: 15px; font-weight: 600; color: var(--cd-ink); margin-bottom: 14px; }
.cd-advisor .cd-btn { width: 100%; box-sizing: border-box; }
.cd-help { background: linear-gradient(160deg, var(--cd-green-900), #2f360a); color: #fff; border-radius: var(--cd-radius); padding: 30px 26px; display: flex; flex-direction: column; justify-content: center; }
.cd-help::before { content: ""; width: 44px; height: 44px; margin-bottom: 16px; background: #fff; -webkit-mask: var(--cd-ico-wa) no-repeat center / contain; mask: var(--cd-ico-wa) no-repeat center / contain; }
.cd-help h3 { color: #fff !important; font-size: 26px; line-height: 1.2; margin: 0 0 10px; }
.cd-help p { color: rgba(255,255,255,.85); font-size: 15px; }
.cd-help .cd-script { font-family: var(--cd-script); font-size: 30px; color: var(--cd-lime); margin: 16px 0 0; }

/* Contacto: sedes */
.cd-sedes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin: 0 0 30px; padding: 0; list-style: none; }
.cd-sede { background: var(--cd-card); border: 1px solid var(--cd-line); border-radius: var(--cd-radius); overflow: hidden; margin: 0 !important; }
.cd-sede img, .cd-sede iframe { display: block; width: 100% !important; height: auto; aspect-ratio: 16 / 9; min-height: 0 !important; object-fit: cover; border: 0; border-radius: 0 !important; }
.cd-sede-body { padding: 18px 20px 20px; }
.cd-sede h4 { font-family: var(--cd-sans); font-size: 17px; font-weight: 600; margin: 0 0 6px; display: flex; align-items: center; gap: 10px; }
.cd-sede h4::before { content: ""; width: 30px; height: 30px; flex: 0 0 30px; border-radius: 50%; background: var(--cd-lime-200) var(--cd-ico-pin-dark) no-repeat center / 15px; }
.cd-sede p { margin: 0 0 6px; font-size: 14px; color: var(--cd-text); }
.cd-sede .cd-btn { margin-top: 10px; }
.cd-mail { background: var(--cd-bg); border-radius: var(--cd-radius); padding: 22px 24px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; }
.cd-mail p { margin: 0; }

/* --------------------------------------------------------------------------
   13. Formularios básicos (com_contact, login, etc.)
   -------------------------------------------------------------------------- */
input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="search"], textarea, select {
  border: 1px solid var(--cd-line) !important;
  border-radius: var(--cd-radius-sm) !important;
  background: var(--cd-bg) !important;
  box-shadow: none !important;
  padding: 10px 14px !important;
  height: auto !important;
  font-size: 15px;
  color: var(--cd-ink);
  box-sizing: border-box;
}
input:focus, textarea:focus, select:focus { border-color: var(--cd-green) !important; background: #fff !important; outline: 0; box-shadow: 0 0 0 3px rgba(185,204,58,.3) !important; }

/* --------------------------------------------------------------------------
   14. Iconos (SVG en línea)
   -------------------------------------------------------------------------- */
:root {
  --cd-ico-wa: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.47 14.38c-.3-.15-1.75-.86-2.02-.96-.27-.1-.47-.15-.67.15-.2.3-.77.96-.94 1.16-.17.2-.35.22-.64.07-.3-.15-1.25-.46-2.38-1.47-.88-.79-1.47-1.76-1.65-2.06-.17-.3-.02-.46.13-.6.13-.14.3-.35.45-.52.15-.17.2-.3.3-.5.1-.2.05-.37-.03-.52-.07-.15-.67-1.61-.92-2.2-.24-.58-.49-.5-.67-.51h-.57c-.2 0-.52.07-.79.37-.27.3-1.04 1.02-1.04 2.48 0 1.46 1.07 2.88 1.21 3.07.15.2 2.1 3.2 5.08 4.49.71.3 1.26.49 1.7.63.71.22 1.36.19 1.87.12.57-.09 1.75-.72 2-1.41.25-.69.25-1.29.17-1.41-.07-.12-.27-.2-.57-.35zM12.04 21.5h-.01a9.43 9.43 0 0 1-4.81-1.32l-.34-.2-3.58.94.96-3.49-.23-.36a9.43 9.43 0 0 1-1.45-5.03c0-5.21 4.24-9.45 9.46-9.45 2.53 0 4.9.99 6.69 2.78a9.4 9.4 0 0 1 2.77 6.69c0 5.21-4.25 9.45-9.46 9.45zm8.05-17.5A11.32 11.32 0 0 0 12.04.66C5.77.66.66 5.77.66 12.04c0 2 .52 3.96 1.52 5.69L.57 23.6l6.02-1.58a11.36 11.36 0 0 0 5.44 1.39h.01c6.27 0 11.38-5.11 11.38-11.38 0-3.04-1.18-5.9-3.33-8.04z'/%3E%3C/svg%3E");
  --cd-ico-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  --cd-ico-arrow-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2323271d' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  --cd-ico-fb: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13.5 21v-7.5h2.5l.4-3h-2.9V8.6c0-.87.25-1.46 1.5-1.46h1.6V4.46A21 21 0 0 0 14.27 4.3c-2.3 0-3.87 1.4-3.87 3.98v2.22H7.8v3h2.6V21h3.1z'/%3E%3C/svg%3E");
  --cd-ico-x: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.75 3h3.07l-6.7 7.66L22 21h-6.17l-4.83-6.32L5.47 21H2.4l7.17-8.2L2 3h6.33l4.37 5.78L17.75 3zm-1.08 16.17h1.7L7.4 4.73H5.58l11.09 14.44z'/%3E%3C/svg%3E");
  --cd-ico-ig: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='3' width='18' height='18' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Ccircle cx='17.5' cy='6.5' r='1' fill='black'/%3E%3C/svg%3E");
  --cd-ico-yt: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21.6 7.2a2.5 2.5 0 0 0-1.77-1.77C18.27 5 12 5 12 5s-6.27 0-7.83.43A2.5 2.5 0 0 0 2.4 7.2 26 26 0 0 0 2 12a26 26 0 0 0 .4 4.8 2.5 2.5 0 0 0 1.77 1.77C5.73 19 12 19 12 19s6.27 0 7.83-.43a2.5 2.5 0 0 0 1.77-1.77A26 26 0 0 0 22 12a26 26 0 0 0-.4-4.8zM10 15V9l5.2 3L10 15z'/%3E%3C/svg%3E");
  --cd-ico-shield: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 3v6c0 4.5-3 7.8-7 9-4-1.2-7-4.5-7-9V6l7-3z'/%3E%3Cpath d='M8.5 12l2.5 2.5 4.5-5'/%3E%3C/svg%3E");
  --cd-ico-truck: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 6h11v10H2zM13 9h4l4 4v3h-8'/%3E%3Ccircle cx='6' cy='17.5' r='1.8'/%3E%3Ccircle cx='17' cy='17.5' r='1.8'/%3E%3C/svg%3E");
  --cd-ico-people: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.5'/%3E%3Cpath d='M2.5 20c.6-3.6 3.2-5.5 6.5-5.5s5.9 1.9 6.5 5.5'/%3E%3Ccircle cx='17' cy='9' r='2.6'/%3E%3Cpath d='M16.5 14.6c2.6.2 4.4 1.9 5 4.9'/%3E%3C/svg%3E");
  --cd-ico-home: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11l9-7 9 7'/%3E%3Cpath d='M5 9.5V20h14V9.5'/%3E%3Cpath d='M10 20v-6h4v6'/%3E%3C/svg%3E");
  --cd-ico-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-6.2 7-11.5A7 7 0 0 0 5 9.5C5 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E");
  --cd-ico-pin-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234f5a0d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-6.2 7-11.5A7 7 0 0 0 5 9.5C5 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E");
  --cd-ico-award: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='9' r='6'/%3E%3Cpath d='M8.5 14l-1.5 7 5-2.5 5 2.5-1.5-7'/%3E%3C/svg%3E");
  --cd-ico-headset: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234f5a0d' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 14v-2a8 8 0 0 1 16 0v2'/%3E%3Crect x='3' y='13' width='4' height='6' rx='1.5'/%3E%3Crect x='17' y='13' width='4' height='6' rx='1.5'/%3E%3Cpath d='M19 19c0 1.5-2 2.5-5 2.5'/%3E%3C/svg%3E");
}

/* --------------------------------------------------------------------------
   15. Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 1100px) {
  .cd-why { grid-template-columns: 1fr; }
  .cd-why-cta { border-left: 0; padding-left: 0; border-top: 1px solid var(--cd-line); padding-top: 20px; }
  .cd-contact-main { grid-template-columns: 1fr; }
}

@media (max-width: 991px) {
  :root { --cd-header-h: 72px; --cd-gutter: 18px; }
  #logo a { width: 150px !important; height: 60px !important; }
  .cd-burger { display: inline-block; }
  #top #menu { display: none !important; }
  #top .top-2 { flex: 0 0 auto; order: 3; }
  .cd-header-actions { margin-left: auto; }

  /* Menú desplegable móvil */
  body.cd-nav-open #top .top-2 {
    position: absolute; left: 0; right: 0; top: 100%;
    background: #fff;
    box-shadow: 0 18px 30px rgba(30,31,28,.18);
    max-height: calc(100vh - var(--cd-header-h));
    overflow-y: auto;
  }
  body.cd-nav-open #top #menu { display: block !important; padding: 10px var(--cd-gutter) 18px; }
  body.cd-nav-open #menu ul.level-0 { text-align: left; }
  body.cd-nav-open #menu ul.level-0 > li { display: block; margin: 0; border-bottom: 1px solid var(--cd-line); }
  body.cd-nav-open #menu ul.level-0 > li > a > span.menu-title { color: var(--cd-ink) !important; padding: 15px 4px; font-size: 16px; display: block; }
  body.cd-nav-open #menu ul.level-0 > li > a > span.menu-title::after { display: none; }
  body.cd-nav-open #menu ul.level-0 > li.has-submenu > a > span.menu-title::before { display: none; }
  body.cd-nav-open #menu li.mega .childcontent {
    display: block !important; position: static !important; width: auto !important;
    box-shadow: none !important; padding: 0 0 10px 10px !important; margin: 0; opacity: 1 !important; height: auto !important;
  }
  body.cd-nav-open #menu .childcontent-inner, body.cd-nav-open #menu .megacol { width: auto !important; }
  body.cd-nav-open #menu ul.level-1 li span.menu-title { padding: 9px 10px; color: var(--cd-text) !important; }

  #feature > .container { flex-wrap: wrap; }
  #feature .column { flex: 1 1 calc(50% - 10px); }
  .container > .grid3, .container > .grid4 { width: 50%; }
  #main > .grid4, #main > .grid3 { width: 50%; }
  #main > #mainbody { width: 100%; order: 1; }
  .cd-featured { grid-template-columns: 1fr; }
  .cd-contact-main { grid-template-columns: 1fr; }
}

@media (max-width: 767px) {
  body { font-size: 15.5px; }
  .container > .column, #main-top > .column, #main-bottom > .column,
  #main > #mainbody, #main > #sidebar-a, #main > #sidebar-b { width: 100% !important; }
  #content-top > .column, #content-bottom > .column { flex-basis: 100%; }

  .cd-hero.has-slider { display: flex; flex-direction: column; }
  .cd-hero.has-slider::after { display: none; }
  .cd-hero.has-slider #header { position: relative; inset: auto; order: 2; padding: 26px 0 30px; background: var(--cd-dark); }
  #header .block > .content > .custom > :first-child, .cd-hero-text > :first-child { margin-top: 0; }
  .cd-hero.has-slider #utility { order: 1; }
  .cd-hero { --cd-hero-h: 300px; }
  .cd-hero .xslider_prev, .cd-hero .xslider_next { bottom: 14px !important; width: 38px !important; height: 38px !important; }
  .cd-hero .xslider_prev { right: 64px !important; }
  .cd-hero .xslider_next { right: 16px !important; }

  #feature { padding-top: 22px; }
  #feature > .container { gap: 14px; }
  #feature .block { aspect-ratio: 4 / 5; }
  #feature .block > .header { padding: 50px 58px 14px 14px; }
  #feature .block .title { font-size: 18px; }
  #feature .block .subtitle { display: none; }

  .cd-products { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 74%; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 6px; -webkit-overflow-scrolling: touch; }
  .cd-product { scroll-snap-align: start; }
  .cd-features { grid-template-columns: 1fr 1fr; row-gap: 20px; }
  .cd-features li:nth-child(3) { border-left: 0; }
  .cd-sedes { grid-template-columns: 1fr; }
  .cd-advisors { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .cd-advisor { min-width: 0; }
  .cd-advisor .cd-btn { padding: 9px 8px !important; }
  .article-body table { display: block; overflow-x: auto; }

  .cd-footer-top { flex-direction: column; align-items: flex-start; }
  .cd-footer-bottom { flex-direction: column; align-items: flex-start; }
  .cd-wa-float { right: 14px; bottom: 14px; height: 52px; padding: 0 14px; }
  .cd-wa-float span { display: none; }
  [class*="mod-txgallery-"] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  [class*="mod-txgallery-"] .caption h5.title, [class*="mod-txgallery-"] .caption .title { font-size: 14px !important; padding-right: 0 !important; }
  [class*="mod-txgallery-"] .caption { padding: 12px 12px 14px !important; }
  .cd-g-detail { display: none; }
  .cd-g-wa, [class*="mod-txgallery-"] .gallery > a.cd-g-wa { width: 34px; height: 34px; right: 10px; top: 10px; bottom: auto; }
}

@media (max-width: 480px) {
  #feature .column { flex-basis: 100%; }
  #feature .block { aspect-ratio: 16 / 11; }
  .cd-advisor { padding: 16px 6px 14px; }
  #component > .block { margin: 6px 0; padding: 22px 16px; }
  .cd-advisor h4 { font-size: 14.5px; }
  .cd-avatar { width: 56px; height: 56px; font-size: 19px; }
  .cd-advisor .cd-phone { font-size: 13px; white-space: nowrap; letter-spacing: -.01em; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* --------------------------------------------------------------------------
   16. Ventana emergente promocional (Magnific Popup, imágenes en /banners/popup/)
   -------------------------------------------------------------------------- */
html.cd-promo-seen .mfp-bg, html.cd-promo-seen .mfp-wrap { visibility: hidden !important; }
.mfp-bg { background: rgba(20, 22, 16, .72) !important; opacity: 1 !important; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.mfp-wrap.cd-promo .mfp-container { padding: 24px 16px; }
.mfp-wrap.cd-promo .mfp-content { max-width: 880px; width: 100%; }
.mfp-wrap.cd-promo.cd-popup-sm .mfp-content { max-width: 600px; }
.mfp-wrap.cd-promo.cd-popup-md .mfp-content { max-width: 880px; }
.mfp-wrap.cd-promo.cd-popup-lg .mfp-content { max-width: 1180px; }
.mfp-wrap.cd-promo.cd-popup-full .mfp-content { max-width: 1500px; }
.mfp-wrap.cd-promo.cd-popup-nobar .cd-promo-bar { display: none; }
.mfp-wrap.cd-promo.cd-popup-sm .cd-promo-bar strong { font-size: 16px; }
.mfp-wrap.cd-promo.cd-popup-sm .cd-promo-bar span { display: none; }
.mfp-wrap.cd-promo .mfp-figure { line-height: normal; animation: cdPromoIn .35s ease both; }
.mfp-wrap.cd-promo .mfp-figure::after { display: none !important; }
.mfp-wrap.cd-promo figure { margin: 0; background: #fff; border-radius: 18px; overflow: hidden; box-shadow: 0 30px 80px rgba(0,0,0,.45); }
.mfp-wrap.cd-promo img.mfp-img {
  display: block; width: 100% !important; height: auto !important;
  max-height: calc(100vh - 230px) !important; object-fit: contain;
  padding: 0 !important; margin: 0 auto; background: #fff;
}
.mfp-wrap.cd-promo figcaption, .mfp-wrap.cd-promo .mfp-bottom-bar,
.mfp-wrap.cd-promo .mfp-arrow, .mfp-wrap.cd-promo .mfp-counter { display: none !important; }
.mfp-wrap.cd-promo .mfp-close {
  position: absolute; top: 12px !important; right: 12px !important; left: auto !important;
  width: 40px !important; height: 40px !important; padding: 0 !important;
  border-radius: 50%; background: rgba(255,255,255,.95) !important; color: var(--cd-ink) !important;
  font: 400 26px/40px var(--cd-sans) !important; text-align: center !important; opacity: 1 !important;
  box-shadow: 0 4px 14px rgba(0,0,0,.2); z-index: 5; cursor: pointer;
}
.mfp-wrap.cd-promo .mfp-close:hover { background: var(--cd-lime) !important; }
.cd-promo-bar { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; padding: 18px 24px; background: var(--cd-bg); border-top: 1px solid var(--cd-line); text-align: left; }
.cd-promo-bar strong { display: block; font-family: var(--cd-serif); font-size: 19px; color: var(--cd-ink); line-height: 1.25; }
.cd-promo-bar span { display: block; font-size: 13.5px; color: var(--cd-muted); margin-top: 3px; }
.cd-promo-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cd-promo-actions .cd-btn { font-size: 14px; padding: 11px 18px !important; }
.cd-promo-later { background: none; border: 0; color: var(--cd-muted); font: 500 13px var(--cd-sans); text-decoration: underline; cursor: pointer; padding: 6px; }
@keyframes cdPromoIn { from { opacity: 0; transform: translateY(16px) scale(.98); } to { opacity: 1; transform: none; } }
@media (max-width: 767px) {
  .mfp-wrap.cd-promo img.mfp-img { max-height: calc(100vh - 300px) !important; }
  .cd-promo-bar { padding: 16px; }
  .cd-promo-actions { width: 100%; }
  .cd-promo-actions .cd-btn { flex: 1 1 auto; }
}

/* --------------------------------------------------------------------------
   17. "¿Por qué elegirnos?" en tarjeta con foto (bloque cd-why-band)
   -------------------------------------------------------------------------- */
#footer:has(.cd-why-band) { padding: 0 !important; margin-top: 30px !important; background: none !important; }
#footer:has(.cd-why-band) .block { padding: 0 !important; background: none !important; box-shadow: none !important; }
.cd-why.cd-why-band {
  grid-template-columns: minmax(240px, 30%) minmax(0, 1fr) minmax(230px, 290px);
  gap: 0; padding: 0; border-radius: var(--cd-radius); box-shadow: var(--cd-shadow); overflow: hidden; align-items: stretch; min-height: 300px;
  background: var(--cd-bg-2) var(--cd-leaf) no-repeat right -90px center / 340px;
}
.cd-why.cd-why-band::before { display: none; }
.cd-why-media { position: relative; background: var(--cd-lime); clip-path: polygon(0 0, 100% 0, 86% 100%, 0 100%); min-height: 300px; }
.cd-why-media img {
  position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover;
  border-radius: 0 !important; box-shadow: none !important; max-width: none;
  clip-path: polygon(0 0, 97% 0, 83% 100%, 0 100%);
}
.cd-why-main { align-self: center; padding: 40px 24px 40px 12px; min-width: 0; }
.cd-why-band .cd-eyebrow { text-transform: none; letter-spacing: 0; font-weight: 500; font-size: 14.5px; color: var(--cd-text); }
.cd-why-band h2 { font-size: clamp(26px, 2.6vw, 34px); line-height: 1.2; margin: 0 0 26px; }
.cd-why-band .cd-features li { font-size: 14px; }
.cd-why-band .cd-features li::before { width: 38px; height: 38px; }
.cd-why-band .cd-why-cta { align-self: center; margin: 40px 0; padding: 6px 32px 6px 28px; border-left: 1px solid #d9d7cc; position: relative; }
.cd-why-band .cd-why-cta::before { content: ""; display: block; width: 30px; height: 3px; border-radius: 2px; background: var(--cd-lime); margin-bottom: 16px; }
.cd-why-band .cd-why-cta p { font-size: 14.5px; line-height: 1.55; margin-bottom: 18px; }
.cd-why-band .cd-why-cta strong { font-size: 16px; margin-bottom: 6px; }
:root {
  --cd-leaf: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 240' fill='none' stroke='%23b9cc3a' stroke-opacity='.28' stroke-width='2'%3E%3Cpath d='M100 230C100 150 100 80 100 10'/%3E%3Cpath d='M100 60C70 50 45 30 40 5c30 5 55 25 60 55z'/%3E%3Cpath d='M100 60c30-10 55-30 60-55-30 5-55 25-60 55z'/%3E%3Cpath d='M100 120c-38-8-68-34-74-66 38 8 68 34 74 66z'/%3E%3Cpath d='M100 120c38-8 68-34 74-66-38 8-68 34-74 66z'/%3E%3Cpath d='M100 185c-44-6-80-36-88-74 44 6 80 36 88 74z'/%3E%3Cpath d='M100 185c44-6 80-36 88-74-44 6-80 36-88 74z'/%3E%3C/svg%3E");
}
@media (max-width: 1100px) {
  .cd-why.cd-why-band { grid-template-columns: minmax(220px, 34%) minmax(0, 1fr); }
  .cd-why-band .cd-why-cta { grid-column: 2; margin: 0 0 36px; padding: 18px 28px 0 20px; border-left: 0; border-top: 1px solid #d9d7cc; }
}
@media (max-width: 767px) {
  .cd-why.cd-why-band { grid-template-columns: 1fr; background-size: 240px; }
  .cd-why-media { min-height: 220px; clip-path: polygon(0 0, 100% 0, 100% 86%, 0 100%); }
  .cd-why-media img { clip-path: polygon(0 0, 100% 0, 100% 83%, 0 97%); }
  .cd-why-main { padding: 24px 20px 8px; }
  .cd-why-band .cd-why-cta { grid-column: 1; margin: 0 20px 32px; padding: 20px 0 0; }
}

/* --------------------------------------------------------------------------
   18. Franja inferior (Contáctanos / Certificaciones) en tarjetas
   -------------------------------------------------------------------------- */
#bottom { background: var(--cd-bg) !important; margin-top: 0 !important; padding: 36px 0 40px !important; border-top: 0 !important; }
#bottom > .container { gap: 0; }
#bottom .block {
  display: flex; align-items: center; gap: 22px; flex-wrap: wrap;
  margin: 10px !important; padding: 22px 26px !important;
  background: var(--cd-card) !important; border: 1px solid var(--cd-line); border-radius: var(--cd-radius);
  box-shadow: 0 1px 2px rgba(35,39,29,.04);
}
#bottom .block > .header { flex: 0 0 auto; }
#bottom .block .title { font-size: 19px !important; margin: 0 !important; padding: 0 !important; border: 0 !important; box-shadow: none !important; }
#bottom .block .title::after { content: ""; display: block; width: 26px; height: 3px; border-radius: 2px; background: var(--cd-lime); margin-top: 10px; }
#bottom .block > .content { flex: 1 1 200px; }
#bottom .custom { justify-content: flex-end; align-items: center; }
#bottom .custom p, #bottom .custom table, #bottom .custom td { margin: 0 !important; padding: 0 !important; }
#bottom .custom img { max-height: 96px; width: auto !important; height: auto !important; border-radius: var(--cd-radius-sm); }
#bottom .custom td span, #bottom .custom td strong { font-size: 12px !important; }
@media (max-width: 767px) { #bottom .custom { justify-content: flex-start; } }
#bottom .block > .header, #bottom .block > .content { padding: 0 !important; margin: 0 !important; }
@media (max-width: 767px) {
  .cd-why.cd-why-band { background-image: none; }
  #bottom .block { padding: 18px 20px !important; }
}


/* --------------------------------------------------------------------------
   19. Páginas internas con diseño propio (bloques cd-page: Empresa, Cliente Espectacular)
   -------------------------------------------------------------------------- */
html, body { overflow-x: clip; }
#middle-wrap:has(.cd-page) { padding-top: 0; }
body:has(.cd-page) #breadcrumbs { display: none; }
#main:has(.cd-page) > #sidebar-a, #main:has(.cd-page) > #sidebar-b { display: none !important; }
#main:has(.cd-page) > #mainbody { width: 100% !important; }
#component > .block:has(.cd-page) { background: none !important; box-shadow: none !important; padding: 0 !important; margin: 0 10px !important; overflow: visible; }
#component .article:has(.cd-page) > header { display: none; }
#middle-wrap:has(.cd-page-empresa) #main-bottom { display: none; }  /* la filosofía ya va dentro de la página */
.cd-page { font-size: 16px; }
.cd-page h2, .cd-page h3 { font-family: var(--cd-serif); color: var(--cd-ink); }
.cd-page img { border-radius: 0; box-shadow: none; max-width: 100%; }
.cd-page .cd-script { font-family: var(--cd-script); font-size: 34px; line-height: 1.1; color: var(--cd-green-700); margin: 14px 0 0; }
.cd-h-line { display: flex; align-items: center; gap: 14px; font-size: clamp(26px, 2.6vw, 34px); line-height: 1.2; margin: 0 0 14px; }
.cd-h-line::before { content: ""; width: 34px; height: 3px; border-radius: 2px; background: var(--cd-green); flex: 0 0 auto; }
.cd-lead { color: var(--cd-text); margin: -4px 0 24px; }

/* Hero de página a ancho completo */
.cd-page-hero {
  position: relative; overflow: hidden;
  width: 100vw; margin-left: calc(50% - 50vw);
  min-height: clamp(320px, 42vw, 440px);
  display: flex; align-items: center;
  background: var(--cd-dark); margin-bottom: 44px;
}
.cd-page-hero.cd-page-hero-tall { min-height: clamp(380px, 48vw, 520px); }
.cd-page-hero-img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; }
.cd-page-hero::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(20,22,16,.86) 0%, rgba(20,22,16,.6) 40%, rgba(20,22,16,.1) 72%, rgba(20,22,16,0) 100%); }
.cd-page-hero::after { content: ""; position: absolute; left: -10%; bottom: -60px; width: 46%; height: 120px; z-index: 1; background: var(--cd-green); border-radius: 50%; transform: rotate(-4deg); opacity: .9; }
.cd-page-hero-text { position: relative; z-index: 2; width: 100%; max-width: var(--cd-max); margin: 0 auto; padding: 48px calc(var(--cd-gutter) + 10px) 64px; box-sizing: border-box; }
.cd-page-hero-text > * { max-width: 520px; }
.cd-page-hero-text .cd-eyebrow { color: #fff; }
.cd-page-hero-text .cd-eyebrow::before { order: 2; width: 70px; background: var(--cd-lime); }
.cd-page-hero-text h2 { color: #fff !important; font-size: clamp(36px, 5vw, 62px); font-weight: 900; line-height: 1.05; margin: 0 0 18px; }
.cd-page-hero-text h2 em { color: var(--cd-lime-200); font-style: italic; }
.cd-page-cliente .cd-page-hero-text h2 em { color: var(--cd-lime); font-style: normal; display: block; }
.cd-page-hero-text p { color: rgba(255,255,255,.9); font-size: 16.5px; line-height: 1.6; margin: 0 0 8px; }
.cd-page-hero-text .cd-script { color: #fff; font-size: clamp(30px, 3.4vw, 42px); margin: 0 0 22px; position: relative; padding-bottom: 12px; }
.cd-page-hero-text .cd-script::after { content: ""; position: absolute; left: 0; bottom: 0; width: 230px; height: 3px; border-radius: 3px; background: var(--cd-lime); transform: rotate(-2deg); }

/* Historia: foto + texto */
.cd-story { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; align-items: center; margin: 0 0 36px; }
.cd-story-media img { display: block; width: 100%; aspect-ratio: 16 / 10.5; object-fit: cover; border-radius: var(--cd-radius) !important; box-shadow: var(--cd-shadow) !important; }
.cd-story-text p { color: var(--cd-text); line-height: 1.7; }
.cd-story-text h2:not(.cd-h-line) { font-size: clamp(30px, 3.4vw, 42px); line-height: 1.12; margin: 0 0 18px; }
.cd-story-rev { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }

/* Cifras */
.cd-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0 0 56px; padding: 26px 10px; list-style: none; background: var(--cd-bg-2); border-radius: var(--cd-radius); }
.cd-stats li { position: relative; padding: 4px 26px 4px 104px; border-left: 1px solid #d9d7cc; min-height: 72px; }
.cd-stats li:first-child { border-left: 0; }
.cd-stats li::before { content: ""; position: absolute; left: 30px; top: 6px; width: 50px; height: 50px; background: var(--cd-green); -webkit-mask: var(--ico) no-repeat center / contain; mask: var(--ico) no-repeat center / contain; }
.cd-stats span { display: block; font-size: 15px; color: var(--cd-ink); }
.cd-stats strong { display: block; font-family: var(--cd-serif); font-size: clamp(28px, 3vw, 38px); line-height: 1.1; color: var(--cd-green-700); margin: 2px 0 6px; }
.cd-stats small { display: block; font-size: 13px; color: var(--cd-muted); line-height: 1.45; }

/* Filosofía */
.cd-philo { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 28px; align-items: stretch; margin: 0 0 40px; padding-top: 36px; border-top: 1px solid var(--cd-line); }
.cd-mv { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.cd-mv-card { position: relative; background: var(--cd-card); border: 1px solid var(--cd-line); border-radius: var(--cd-radius); padding: 24px 24px 26px; box-shadow: 0 1px 2px rgba(35,39,29,.04); overflow: hidden; }
.cd-mv-card::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: linear-gradient(90deg, var(--cd-green-700), var(--cd-lime)); }
.cd-mv-card h3 { display: flex; align-items: center; gap: 14px; font-size: 24px; margin: 0 0 16px; }
.cd-mv-card::before { content: ""; position: absolute; left: 24px; top: 22px; width: 48px; height: 48px; border-radius: 50%; background: var(--cd-lime-200); }
.cd-mv-card h3::before { content: ""; width: 48px; height: 48px; flex: 0 0 48px; background: var(--cd-green-700); -webkit-mask: var(--ico) no-repeat center / 26px; mask: var(--ico) no-repeat center / 26px; position: relative; z-index: 1; }
.cd-mv-card p { font-size: 14.5px; line-height: 1.65; color: var(--cd-text); margin: 0; }
.cd-philo-media img { display: block; width: 100%; height: 100%; min-height: 280px; object-fit: cover; border-radius: var(--cd-radius) !important; }

/* Valores */
.cd-values { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.6fr); background: var(--cd-bg-2); border-radius: var(--cd-radius); overflow: hidden; margin: 0 0 20px; }
.cd-values-media { position: relative; min-height: 240px; }
.cd-values-media img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; }
.cd-values-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(200deg, rgba(20,22,16,.05), rgba(20,22,16,.7)); }
.cd-values-quote { position: absolute; left: 28px; right: 28px; bottom: 26px; z-index: 1; margin: 0; font-family: var(--cd-script); font-size: clamp(30px, 3vw, 40px); line-height: 1.05; color: #fff; transform: rotate(-6deg); transform-origin: left bottom; padding-bottom: 10px; }
.cd-values-quote::after { content: ""; display: block; width: 70%; height: 3px; border-radius: 3px; background: var(--cd-lime); margin-top: 10px; }
.cd-values-body { padding: 30px 32px; }
.cd-values-body h2 { font-size: clamp(24px, 2.4vw, 30px); margin: 0 0 6px; }
.cd-values-body > p { color: var(--cd-text); font-size: 14.5px; margin: 0 0 22px; }
.cd-values-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
.cd-values-list li { padding: 0 16px; border-left: 1px solid #d9d7cc; font-size: 13.5px; color: var(--cd-muted); line-height: 1.4; }
.cd-values-list li:first-child { border-left: 0; padding-left: 0; }
.cd-values-list li::before { content: ""; display: block; width: 34px; height: 34px; margin-bottom: 12px; background: var(--cd-green); -webkit-mask: var(--ico) no-repeat center / contain; mask: var(--ico) no-repeat center / contain; }
.cd-values-list strong { display: block; color: var(--cd-ink); font-size: 14.5px; }

/* Beneficios (Cliente Espectacular) */
.cd-benefits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin: 10px 0 48px; padding: 0; list-style: none; }
.cd-benefits li { background: var(--cd-card); border: 1px solid var(--cd-line); border-radius: var(--cd-radius); padding: 28px 26px; box-shadow: var(--cd-shadow); position: relative; }
.cd-benefits li::before { content: ""; display: block; width: 74px; height: 74px; margin-bottom: 20px; background: var(--cd-green-700); -webkit-mask: var(--ico) no-repeat center / 36px; mask: var(--ico) no-repeat center / 36px; }
.cd-benefits li::after { content: ""; position: absolute; left: 26px; top: 28px; width: 74px; height: 74px; border-radius: 50%; background: var(--cd-lime-200); z-index: 0; }
.cd-benefits li::before { position: relative; z-index: 1; }
.cd-benefits h3 { font-size: 23px; margin: 0 0 12px; position: relative; z-index: 1; }
.cd-benefits p { color: var(--cd-text); font-size: 15px; line-height: 1.6; margin: 0; position: relative; z-index: 1; }

/* Franja de llamado a la acción a ancho completo */
.cd-cta-band {
  position: relative; overflow: hidden;
  width: 100vw; margin-left: calc(50% - 50vw); margin-bottom: -10px;
  background: linear-gradient(110deg, var(--cd-green-700), var(--cd-green) 55%, #9aab22);
  padding: 46px max(var(--cd-gutter), calc(50vw - (var(--cd-max) / 2) + var(--cd-gutter) + 10px));
  box-sizing: border-box;
  display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 36px; align-items: center;
}
.cd-cta-band::before { content: ""; position: absolute; left: -80px; top: 50%; width: 220px; height: 220px; transform: translateY(-50%) rotate(45deg); border: 40px solid rgba(255,255,255,.06); }
.cd-cta-band > * { position: relative; }
.cd-cta-band .cd-eyebrow { color: #fff; }
.cd-cta-band .cd-eyebrow::before { background: var(--cd-lime-200); }
.cd-cta-band h2 { color: #fff !important; font-size: clamp(28px, 3.4vw, 42px); line-height: 1.1; margin: 0 0 10px; }
.cd-cta-band p { color: rgba(255,255,255,.92); margin: 0; font-size: 16px; max-width: 460px; }
.cd-btn.cd-btn-darkgreen { background: #2f3a0a !important; padding: 15px 26px !important; box-shadow: 0 10px 26px rgba(0,0,0,.2) !important; }
.cd-cta-band .cd-script { color: #fff; font-size: 32px; transform: rotate(-6deg); margin: 0; max-width: 200px; }

/* Iconos adicionales */
.cd-i-calendar  { --ico: var(--cd-ico-calendar); }
.cd-i-store     { --ico: var(--cd-ico-store); }
.cd-i-target    { --ico: var(--cd-ico-target); }
.cd-i-eye       { --ico: var(--cd-ico-eye); }
.cd-i-handshake { --ico: var(--cd-ico-handshake); }
.cd-i-gift      { --ico: var(--cd-ico-gift); }
.cd-i-tag       { --ico: var(--cd-ico-tag); }
.cd-i-userstar  { --ico: var(--cd-ico-userstar); }
:root {
  --cd-ico-calendar: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3Cpath d='M7 14h.01M11 14h.01M15 14h.01M7 17.5h.01M11 17.5h.01M15 17.5h.01' stroke-width='2.2'/%3E%3C/svg%3E");
  --cd-ico-store: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9l1.5-5h15L21 9'/%3E%3Cpath d='M3 9c0 1.7 1.3 3 3 3s3-1.3 3-3c0 1.7 1.3 3 3 3s3-1.3 3-3c0 1.7 1.3 3 3 3s3-1.3 3-3'/%3E%3Cpath d='M5 12v9h14v-9'/%3E%3Cpath d='M10 21v-5h4v5'/%3E%3C/svg%3E");
  --cd-ico-target: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Ccircle cx='11' cy='13' r='8'/%3E%3Ccircle cx='11' cy='13' r='4'/%3E%3Ccircle cx='11' cy='13' r='.6' fill='black'/%3E%3Cpath d='M11 13l9-9M16 4h4v4'/%3E%3C/svg%3E");
  --cd-ico-eye: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3.2'/%3E%3C/svg%3E");
  --cd-ico-handshake: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 11l4-4 4 2 3-2 3 1 6 4'/%3E%3Cpath d='M2 11l5 5'/%3E%3Cpath d='M22 11l-5 5-2-1'/%3E%3Cpath d='M7 16l2 2 2-1 2 2 2-2 2 1 1-2'/%3E%3Cpath d='M10 9l3 3c.6.6 1.6.6 2.1 0 .6-.6.6-1.5 0-2.1L13 8'/%3E%3C/svg%3E");
  --cd-ico-gift: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='8' width='18' height='4' rx='1'/%3E%3Cpath d='M5 12v9h14v-9M12 8v13'/%3E%3Cpath d='M12 8c-1.5-3-5-4-5.5-1.5S10 8 12 8zM12 8c1.5-3 5-4 5.5-1.5S14 8 12 8z'/%3E%3C/svg%3E");
  --cd-ico-tag: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12V4a1 1 0 0 1 1-1h8l9 9-9 9-9-9z'/%3E%3Ccircle cx='7.5' cy='7.5' r='1.3'/%3E%3Cpath d='M9.5 15.5l5-5M10 11h.01M14 15h.01' stroke-width='2'/%3E%3C/svg%3E");
  --cd-ico-userstar: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10' cy='7.5' r='4'/%3E%3Cpath d='M2.5 21c.5-4 3.6-6.5 7.5-6.5 1.2 0 2.3.2 3.2.6'/%3E%3Cpath d='M18 13.5l1.3 2.6 2.9.4-2.1 2 .5 2.9-2.6-1.4-2.6 1.4.5-2.9-2.1-2 2.9-.4z'/%3E%3C/svg%3E");
}

@media (max-width: 991px) {
  .cd-story, .cd-story-rev { grid-template-columns: 1fr; gap: 24px; }
  .cd-story-rev .cd-story-media { order: -1; }
  .cd-philo { grid-template-columns: 1fr; }
  .cd-philo-media img { min-height: 220px; aspect-ratio: 16 / 9; }
  .cd-values { grid-template-columns: 1fr; }
  .cd-values-list { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 20px; }
  .cd-values-list li:nth-child(3) { border-left: 0; padding-left: 0; }
  .cd-benefits { grid-template-columns: 1fr; }
  .cd-cta-band { grid-template-columns: 1fr; gap: 20px; }
}
@media (max-width: 767px) {
  .cd-page-hero { margin-bottom: 28px; }
  .cd-page-hero::before { background: linear-gradient(180deg, rgba(20,22,16,.45), rgba(20,22,16,.85)); }
  .cd-page-hero::after { width: 80%; }
  .cd-stats { grid-template-columns: 1fr; padding: 10px 0; }
  .cd-stats li { border-left: 0; border-top: 1px solid #d9d7cc; padding: 18px 20px 18px 92px; }
  .cd-stats li:first-child { border-top: 0; }
  .cd-stats li::before { left: 22px; top: 20px; width: 44px; height: 44px; }
  .cd-mv { grid-template-columns: 1fr; }
  .cd-values-body { padding: 24px 20px; }
}

/* 2.0.9 — Foto de asesor en la tarjeta de Contáctanos: <span class="cd-avatar"><img src="images/asesores/..." alt=""></span> */
.cd-avatar:has(img) {
  position: relative; width: 104px; height: 104px; padding: 0; margin-bottom: 16px;
  background: #fff; border: 3px solid #fff; box-shadow: 0 0 0 1px var(--cd-line), 0 6px 16px rgba(35, 39, 29, .10);
}
.cd-avatar img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center 25%; border-radius: 50%; }
.cd-avatar:has(img)::before {
  content: ""; position: absolute; right: -4px; bottom: 2px; width: 28px; height: 28px;
  border-radius: 50%; background: var(--cd-green-700); border: 2px solid #fff; box-sizing: border-box;
}
.cd-avatar:has(img)::after {
  content: ""; position: absolute; right: 3px; bottom: 9px; width: 14px; height: 14px; background: #fff;
  -webkit-mask: var(--cd-ico-wa) no-repeat center / contain; mask: var(--cd-ico-wa) no-repeat center / contain;
}
@media (max-width: 480px) {
  .cd-avatar:has(img) { width: 84px; height: 84px; }
}
