/*!
 * CHS Dónde Comer — estilos públicos.
 * Tokens y componentes del Design System "CHS Gastronomía" (generado; editar components.css / tokens.json).
 */
.chsdc, .chsdc-admin, .chsdc-panel {
	--green-500: #5b9b59;
	--green-700: #3f7a3d;
	--green-800: #2f5f2e;
	--green-050: #f6f9f5;
	--gold-500: #d3ab05;
	--gold-700: #b99005;
	--gold-100: #faf3d6;
	--ink: #2f2f2f;
	--ink-muted: #626262;
	--surface: #ffffff;
	--surface-alt: #f6f6f6;
	--line: #e3e3e3;
	--line-strong: #8a8a8a;
	--black: #000000;
	--panel: #3e3e3e;
	--dark-2: #1f1f1f;
	--on-green: #ffffff;
	--on-dark: #ffffff;
	--on-dark-muted: #9a9a9a;
	--whatsapp: #25d366;
	--whatsapp-hover: #1ebe5a;
	--whatsapp-ink: #0b2e17;
	--open-bg: #d4edda;
	--open-ink: #155724;
	--closed-bg: #f8d7da;
	--closed-ink: #721c24;
	--closed-on-dark: #f5b7bd;
	--space-1: 4px;
	--space-2: 8px;
	--space-3: 12px;
	--space-4: 16px;
	--space-5: 24px;
	--space-6: 40px;
	--space-7: 100px;
	--radius-sm: 6px;
	--radius-md: 10px;
	--radius-pill: 100px;
	--font-body: Muli, Mulish, sans-serif;
}

/* ==========================================================================
   CHS Gastronomía — componentes (.chsdc-*)
   Línea gráfica de clubhipico.cl/entretenimiento (hoja.css + full_custom.css):
   Muli en todo, títulos 800 / italic light, fotos con radio 10px sin sombras,
   botones píldora, franjas negras y panel lateral gris.
   Header, banner y footer son del tema: estos componentes van entre ellos.
   Todas las reglas leen tokens var(--*) de tokens.css o del :root del plugin.
   ========================================================================== */

.chsdc, .chsdc * { box-sizing: border-box; }
.chsdc { font-family: var(--font-body); color: var(--ink); font-size: 16px; line-height: 24px; }
.chsdc img { max-width: 100%; display: block; }
.chsdc-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.chsdc-ico { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; vertical-align: -3px; }

/* ---------- Tipografía (mismos cortes que hoja.css) ---------- */
.chsdc-lead { margin: 0; font-size: 18px; line-height: 30px; font-weight: 300; }
.chsdc-lead strong { font-weight: 700; }

/* ---------- Botones (.btn del sitio: píldora) ---------- */
.chsdc-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); min-height: 40px; padding: 0 var(--space-5); border: 2px solid transparent; border-radius: var(--radius-pill); font-family: var(--font-body); font-size: 14px; font-weight: 700; line-height: 1; text-decoration: none !important; cursor: pointer; transition: background-color .15s, border-color .15s, color .15s; white-space: nowrap; }
.chsdc-btn[hidden] { display: none; }
.chsdc-btn:focus-visible { outline: 3px solid var(--gold-500); outline-offset: 2px; }
.chsdc-btn--whatsapp { background: var(--whatsapp); color: var(--whatsapp-ink) !important; }
.chsdc-btn--whatsapp:hover { background: var(--whatsapp-hover); }
.chsdc-btn--green { background: var(--green-700); color: var(--on-green) !important; }
.chsdc-btn--green:hover { background: var(--green-800); }
.chsdc-btn--outline { background: transparent; color: var(--ink) !important; border-color: var(--green-500); }
.chsdc-btn--outline:hover { background: var(--green-500); color: var(--on-green) !important; }
.chsdc-btn--gold { background: var(--gold-500); color: var(--black) !important; }
.chsdc-btn--gold:hover { background: var(--gold-700); }
.chsdc-btn--link { min-height: 0; padding: 0; border: 0; background: none; color: var(--green-700) !important; font-weight: 800; text-decoration: underline !important; text-underline-offset: 3px; }
.chsdc-btn--sm { min-height: 34px; padding: 0 var(--space-4); font-size: 13px; }
.chsdc-on-dark .chsdc-btn--outline { color: var(--on-dark) !important; border-color: var(--on-dark); }
.chsdc-on-dark .chsdc-btn--outline:hover { background: var(--on-dark); color: var(--black) !important; }
.chsdc-on-dark .chsdc-btn--link { color: var(--gold-500) !important; }

/* ---------- Filtros (.menu-border-radius del sitio: borde verde 2px, píldora) ----------
   Tarjeta blanca: cabecera (título + filtros rápidos), grupos en filas etiqueta | chips, pie con contador.
   No queda fija: al bajar aparece la barra resumen. */
.chsdc-filters { margin-bottom: var(--space-6); background: var(--surface); border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 18px 40px -24px rgba(0, 0, 0, .28); overflow: hidden; }
.chsdc-filters__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; padding: 22px 28px; background: var(--surface-alt); border-bottom: 1px solid var(--line); }
.chsdc-filters__title { display: inline-flex; align-items: center; gap: 12px; margin: 0; font-size: 22px; line-height: 26px; font-weight: 300; font-style: italic; color: var(--ink); }
.chsdc-filters__title strong { font-weight: 800; font-style: normal; }
.chsdc-filters__title .chsdc-ico { width: 40px; height: 40px; padding: 10px; border-radius: 50%; background: var(--green-700); color: var(--on-green); }
.chsdc-filters__quick { display: flex; flex-wrap: wrap; gap: 10px; }
.chsdc-filters__group { display: grid; grid-template-columns: 170px minmax(0, 1fr); align-items: start; gap: 12px 20px; padding: 22px 28px 0; }
.chsdc-filters__group + .chsdc-filters__group { padding-top: 18px; }
.chsdc-filters__label { margin: 0; padding-top: 11px; font-size: 18px; line-height: 22px; font-weight: 300; font-style: italic; color: var(--ink); }
.chsdc-filters__label strong { font-weight: 800; font-style: normal; }
.chsdc-filters__chips { display: flex; flex-wrap: wrap; gap: 10px; }
.chsdc-filters__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-top: 22px; padding: 16px 28px; border-top: 1px dashed var(--line); font-size: 15px; }
.chsdc-filters__count { color: var(--ink-muted); }
.chsdc-filters__count strong { color: var(--ink); font-weight: 800; }
.chsdc-filters__foot [data-clear] { margin-left: auto; }
.chsdc-filters__top + .chsdc-filters__foot { margin-top: 0; border-top: 0; }

.chsdc-chip { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px 0 8px; border: 2px solid var(--green-500); border-radius: var(--radius-pill); background: var(--surface); color: var(--ink); font-family: var(--font-body); font-size: 15px; font-weight: 600; line-height: 1; white-space: nowrap; cursor: pointer; transition: background-color .15s, color .15s, transform .2s, box-shadow .2s; }
.chsdc-chip > .chsdc-ico:first-child { width: 30px; height: 30px; padding: 6px; border-radius: 50%; background: var(--green-050); color: var(--green-700); transition: background .15s, color .15s; }
.chsdc-chip:hover { background: var(--green-050); }
.chsdc-chip:hover > .chsdc-ico:first-child { background: var(--surface); }
.chsdc-chip:focus-visible { outline: 3px solid var(--gold-500); outline-offset: 2px; }
.chsdc-chip[aria-pressed="true"] { background: var(--green-700); border-color: var(--green-700); color: var(--on-green); font-weight: 800; }
.chsdc-chip[aria-pressed="true"] > .chsdc-ico:first-child { background: rgba(255, 255, 255, .18); color: var(--on-green); }
.chsdc-chip[hidden] { display: none; }
.chsdc-chip__n { display: inline-grid; place-items: center; min-width: 24px; height: 24px; padding: 0 7px; border-radius: var(--radius-pill); background: var(--surface-alt); color: var(--ink); font-size: 12px; font-weight: 800; }
.chsdc-chip[aria-pressed="true"] .chsdc-chip__n { display: none; }
.chsdc-chip__check { display: none; width: 18px; height: 18px; }
.chsdc-chip[aria-pressed="true"] .chsdc-chip__check { display: inline-block; }
/* Filtros rápidos (interruptores con forma de chip) */
.chsdc-chip--toggle { padding: 0 18px 0 14px; border-color: var(--line-strong); background: var(--surface); }
.chsdc-chip--toggle .chsdc-switch { position: relative; flex: none; width: 34px; height: 20px; border-radius: var(--radius-pill); background: var(--line); transition: background .2s; }
.chsdc-chip--toggle .chsdc-switch::after { content: ""; position: absolute; top: 3px; left: 3px; width: 14px; height: 14px; border-radius: 50%; background: var(--surface); box-shadow: 0 1px 3px rgba(0, 0, 0, .25); transition: transform .25s cubic-bezier(.3, 1.4, .5, 1); }
.chsdc-chip--toggle:hover { background: var(--surface-alt); }
.chsdc-chip--toggle[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: var(--on-dark); }
.chsdc-chip--toggle[aria-pressed="true"] .chsdc-switch { background: var(--whatsapp); }
.chsdc-chip--toggle[aria-pressed="true"] .chsdc-switch::after { transform: translateX(14px); }

@container chsdc (max-width: 820px) {
  .chsdc-filters__group { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .chsdc-filters__label { padding-top: 0; }
}
@container chsdc (max-width: 560px) {
  .chsdc-filters { border-radius: 14px; }
  .chsdc-filters__top { padding: 18px; }
  .chsdc-filters__title { font-size: 19px; }
  .chsdc-filters__title .chsdc-ico { width: 34px; height: 34px; padding: 8px; }
  .chsdc-filters__quick { width: 100%; display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; }
  .chsdc-chip--toggle { justify-content: center; padding: 6px 10px; font-size: 13px; white-space: normal; line-height: 16px; }
  .chsdc-filters__group { padding: 18px 18px 0; }
  .chsdc-filters__chips { gap: 8px; }
  .chsdc-chip { min-height: 38px; padding: 0 12px 0 5px; font-size: 13px; gap: 6px; }
  .chsdc-chip > .chsdc-ico:first-child { width: 26px; height: 26px; padding: 5px; }
  .chsdc-chip__n { min-width: 20px; height: 20px; font-size: 11px; }
  .chsdc-filters__foot { padding: 14px 18px; }
}

/* Barra resumen fija (aparece cuando el panel de filtros sale de pantalla) */
/* ---------- Riel de filtros flotante (vertical, a la izquierda) ----------
   Aparece al bajar por el listado cuando el panel de filtros quedó arriba. Oscuro (dark-2, igual en ambos temas) como las franjas del sitio,
   íconos de 44px; al pasar el mouse o tocar el contador se ensancha y muestra etiquetas y conteos.
   ≥1280px: flota en el margen izquierdo, junto al contenido. <1280px: pestaña compacta pegada al borde que se despliega.
   z-index 20: sobre las cards, bajo el header del tema (100) y el panel de detalle. */
.chsdc-rail { --rail-w: 60px; position: fixed; z-index: 20; left: max(12px, calc((100vw - 1140px) / 2 - 84px)); top: calc(50% + var(--chsdc-sticky-top, 90px) / 2); display: flex; flex-direction: column; width: var(--rail-w); max-height: calc(100vh - var(--chsdc-sticky-top, 90px) - 40px); padding: 8px; border-radius: 30px; background: var(--dark-2); color: var(--on-dark); box-shadow: 0 20px 44px -14px rgba(0, 0, 0, .5); font-family: var(--font-body); overflow: hidden; opacity: 0; visibility: hidden; transform: translate(-28px, -50%); transition: opacity .3s ease, transform .45s cubic-bezier(.2, .8, .2, 1), width .35s cubic-bezier(.2, .8, .2, 1), visibility 0s linear .45s; }
.chsdc-rail.is-visible { opacity: 1; visibility: visible; transform: translate(0, -50%); transition: opacity .3s ease, transform .45s cubic-bezier(.2, .8, .2, 1), width .35s cubic-bezier(.2, .8, .2, 1), visibility 0s; }
.chsdc-rail.is-expanded { --rail-w: 272px; }
@media (hover: hover) and (min-width: 1280px) { .chsdc-rail:hover, .chsdc-rail:has(:focus-visible) { --rail-w: 272px; } }
.chsdc-rail [hidden] { display: none !important; }
.chsdc-rail__head, .chsdc-rail__btn { position: relative; display: flex; align-items: center; gap: 10px; flex: none; width: 100%; min-height: 44px; margin: 0; padding: 0; border: 0; border-radius: 22px; background: transparent; color: var(--on-dark); font: 700 14px/18px var(--font-body); letter-spacing: 0; text-align: left; text-transform: none; white-space: nowrap; box-shadow: none; cursor: pointer; transition: background-color .15s, color .15s; }
.chsdc-rail__btn:hover, .chsdc-rail__head:hover { background: rgba(255, 255, 255, .1); color: var(--on-dark); }
.chsdc-rail__head:focus-visible, .chsdc-rail__btn:focus-visible { outline: 2px solid var(--gold-500); outline-offset: -2px; }
.chsdc-rail__ico { position: relative; display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 50%; transition: background-color .2s, color .2s, transform .25s cubic-bezier(.3, 1.4, .5, 1); }
.chsdc-rail__ico .chsdc-ico { width: 20px; height: 20px; }
.chsdc-rail__btn:hover .chsdc-rail__ico { transform: scale(1.08); }
.chsdc-rail__ico--head { background: var(--green-700); color: var(--on-green); }
.chsdc-rail__count { position: absolute; top: -4px; left: 22px; display: grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border: 2px solid var(--dark-2); border-radius: 11px; background: var(--gold-500); color: var(--black); font-size: 11px; line-height: 1; font-weight: 800; }
.chsdc-rail__count strong { font-weight: 800; }
.chsdc-rail__count small { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.chsdc-rail__dot { position: absolute; right: 1px; bottom: 1px; width: 11px; height: 11px; border: 2px solid var(--dark-2); border-radius: 50%; background: var(--gold-500); }
.chsdc-rail__label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; opacity: 0; transform: translateX(-8px); transition: opacity .15s ease, transform .2s ease; }
.chsdc-rail__label--head { font-weight: 300; font-style: italic; font-size: 16px; }
.chsdc-rail__label--head strong { font-weight: 800; font-style: normal; }
.chsdc-rail__n { flex: none; min-width: 22px; height: 22px; margin-right: 10px; padding: 0 6px; border-radius: 11px; background: rgba(255, 255, 255, .14); font-size: 11px; line-height: 22px; font-weight: 800; text-align: center; opacity: 0; transition: opacity .15s ease; }
.chsdc-rail__btn[aria-pressed="true"] .chsdc-rail__ico { background: var(--gold-500); color: var(--black); animation: chsdc-pop .35s ease; }
.chsdc-rail__btn[aria-pressed="true"] { background: rgba(211, 171, 5, .14); }
.chsdc-rail__btn[aria-pressed="true"] .chsdc-rail__n { background: var(--gold-500); color: var(--black); }
.chsdc-rail__list { display: flex; flex-direction: column; gap: 2px; min-height: 0; margin: 6px 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: none; }
.chsdc-rail__list::-webkit-scrollbar { display: none; }
.chsdc-rail__sep { display: block; flex: none; height: 1px; margin: 6px 10px; background: rgba(255, 255, 255, .16); }
.chsdc-rail__title { display: block; flex: none; max-height: 0; padding: 0 12px; overflow: hidden; font-size: 11px; line-height: 16px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; color: var(--on-dark-muted); opacity: 0; transition: max-height .25s ease, opacity .2s ease, margin .25s ease; }
.chsdc-rail__foot { display: flex; flex-direction: column; gap: 2px; flex: none; padding-top: 6px; border-top: 1px solid rgba(255, 255, 255, .16); }
.chsdc-rail__btn--clear .chsdc-rail__ico { background: rgba(255, 255, 255, .12); }
.chsdc-rail__btn--up .chsdc-ico { transform: rotate(-90deg); }
/* Desplegado: etiquetas, conteos y títulos de grupo */
.chsdc-rail.is-expanded .chsdc-rail__label, .chsdc-rail.is-expanded .chsdc-rail__n { opacity: 1; transform: none; transition-delay: .1s; }
.chsdc-rail.is-expanded .chsdc-rail__title { max-height: 24px; margin: 4px 0 2px; opacity: 1; transition-delay: .05s; }
@media (hover: hover) and (min-width: 1280px) {
  .chsdc-rail:hover .chsdc-rail__label, .chsdc-rail:hover .chsdc-rail__n, .chsdc-rail:has(:focus-visible) .chsdc-rail__label, .chsdc-rail:has(:focus-visible) .chsdc-rail__n { opacity: 1; transform: none; transition-delay: .1s; }
  .chsdc-rail:hover .chsdc-rail__title, .chsdc-rail:has(:focus-visible) .chsdc-rail__title { max-height: 24px; margin: 4px 0 2px; opacity: 1; transition-delay: .05s; }
}
/* Pantallas angostas: pestaña compacta en el borde; al tocarla se despliega con etiquetas */
@media (max-width: 1279px) {
  .chsdc-rail { --rail-w: 50px; left: 0; padding: 5px 5px 5px 3px; border-radius: 0 24px 24px 0; }
  .chsdc-rail:not(.is-expanded) .chsdc-rail__head { min-height: 40px; }
  .chsdc-rail:not(.is-expanded) .chsdc-rail__ico--head { width: 40px; height: 40px; }
  .chsdc-rail:not(.is-expanded) .chsdc-rail__count { left: 20px; }
  .chsdc-rail:not(.is-expanded) .chsdc-rail__list, .chsdc-rail:not(.is-expanded) .chsdc-rail__foot { display: none; }
  .chsdc-rail.is-expanded { --rail-w: min(284px, calc(100vw - 40px)); padding: 8px; }
}
@media print { .chsdc-rail { display: none !important; } }

/* ---------- Precio y servicios ---------- */
.chsdc-price { font-weight: 800; letter-spacing: .04em; color: var(--ink); }
.chsdc-price__off { color: var(--line-strong); }
.chsdc-services { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.chsdc-service { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px 5px 10px; border-radius: var(--radius-pill); background: var(--surface-alt); font-size: 13px; line-height: 18px; font-weight: 600; color: var(--ink); white-space: nowrap; }
.chsdc-service .chsdc-ico { width: 16px; height: 16px; color: var(--green-500); }
.chsdc-service--featured { background: var(--gold-100); font-weight: 800; }
.chsdc-service--featured .chsdc-ico { color: var(--ink); }
.chsdc-service--more { background: transparent; border: 1px dashed var(--line-strong); color: var(--ink-muted); }

/* ---------- Horarios (formato del sitio: día + rango en 800) ---------- */
.chsdc-hours { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; margin: 0; padding: 0; font-size: 15px; line-height: 20px; }
.chsdc-hours dt, .chsdc-hours dd { margin: 0; padding: 0; }
.chsdc-hours__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2px 16px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.chsdc-hours__row:last-child { border-bottom: 0; }
.chsdc-hours dt { display: inline-flex; align-items: center; gap: 8px; font-weight: 400; color: var(--ink); }
.chsdc-hours dd { margin: 0; display: inline-flex; align-items: center; gap: 6px; font-weight: 800; color: var(--ink); text-transform: uppercase; white-space: nowrap; }
.chsdc-hours dd .chsdc-ico { width: 16px; height: 16px; }
.chsdc-hours__row--race dt::after { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--gold-500); }
.chsdc-hours__row--closed dd { color: var(--closed-ink); }
.chsdc-hours__row.is-today dt { font-weight: 800; }
.chsdc-hours__row.is-today dt::before { content: "Hoy"; padding: 2px 8px; border-radius: var(--radius-pill); background: var(--green-700); color: var(--on-green); font-size: 11px; line-height: 16px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.chsdc-status { display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border-radius: var(--radius-pill); font-size: 12px; line-height: 16px; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; }
.chsdc-status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.chsdc-status--open { background: var(--open-bg); color: var(--open-ink); }
.chsdc-status--closed { background: var(--closed-bg); color: var(--closed-ink); }
.chsdc-status[hidden] { display: none; }
.chsdc-status { white-space: nowrap; }

/* ---------- Card de local (personalizable por restaurante) ----------
   Variables por card (inline desde el editor):
   --accent      color de marca del local (por defecto green-500)
   --on-accent   texto sobre el acento (calculado: blanco o ink)
   --photo-pos   encuadre de la foto (center | top | bottom)
   Variantes: .chsdc-card--foto (defecto) · --marca (cabecera color + logo grande) · --destacada (fila completa)
   Las 5 filas de cada card (cabecera, ubicación, servicios, horarios, acciones) usan subgrid:
   quedan alineadas con las de la card vecina aunque el contenido varíe.
   ---------------------------------------------------------------------- */
.chsdc-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; row-gap: 0; align-items: stretch; }
.chsdc-card { --accent: var(--green-500); --on-accent: var(--on-dark); --photo-pos: center; position: relative; display: grid; grid-row: span 5; grid-template-rows: subgrid; row-gap: 0; min-width: 0; margin-bottom: 40px; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; transition: transform .25s ease, box-shadow .25s ease, border-color .25s; }
@supports not (grid-template-rows: subgrid) {
  .chsdc-grid { row-gap: 40px; }
  .chsdc-card { display: flex; flex-direction: column; grid-row: auto; margin-bottom: 0; }
  .chsdc-card__row--actions { margin-top: auto; }
}
.chsdc-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(0, 0, 0, .12); border-color: transparent; }
.chsdc-card[hidden] { display: none; }
.chsdc-card.is-highlight { outline: 3px solid var(--gold-500); outline-offset: 3px; }

/* Cabecera */
.chsdc-card__hero { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 260px; padding: 24px; background: var(--accent); color: var(--on-dark); border-bottom: 5px solid var(--accent); cursor: pointer; isolation: isolate; overflow: hidden; }
/* La foto sobresale 44px arriba y abajo: el parallax la mueve sin mostrar bordes.
   Cards vecinas se mueven en sentido contrario (una sube, la otra baja; ver front.js). El zoom del hover usa "scale" para no pisar el parallax. */
.chsdc-card__photo { position: absolute; top: -44px; right: 0; bottom: -44px; left: 0; z-index: -2; width: 100%; height: calc(100% + 88px); max-width: none !important; object-fit: cover; object-position: var(--photo-pos); transition: scale .6s ease; will-change: transform; }
.chsdc-card:hover .chsdc-card__photo { scale: 1.06; }
.chsdc-card--static .chsdc-card__hero { cursor: default; }
.chsdc-card__hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(0, 0, 0, .82) 0%, rgba(0, 0, 0, .42) 42%, rgba(0, 0, 0, .08) 72%, rgba(0, 0, 0, .25) 100%); }
.chsdc-card__heading { max-width: 100%; }
.chsdc-card__type { margin: 0 0 2px; font-size: 13px; line-height: 18px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; opacity: .92; }
.chsdc-card__title { margin: 0; font-family: var(--font-body); font-size: 32px; line-height: 36px; font-weight: 800; color: inherit; overflow-wrap: anywhere; }
.chsdc-card__title button { all: unset; cursor: pointer; }
.chsdc-card__title button::after { content: ""; position: absolute; inset: 0; } /* toda la cabecera abre el detalle */
.chsdc-card__title button:focus-visible { outline: 3px solid var(--gold-500); outline-offset: 3px; }
.chsdc-card__cuisine { margin: 4px 0 0; font-size: 19px; line-height: 24px; font-weight: 300; font-style: italic; }
.chsdc-card__tags { position: absolute; top: 18px; left: 18px; right: 100px; display: flex; flex-wrap: wrap; align-items: flex-start; gap: 6px; pointer-events: none; }
.chsdc-card__ribbon, .chsdc-card__photos { display: inline-flex; align-items: center; gap: 5px; padding: 4px 11px; border-radius: var(--radius-pill); font-size: 12px; line-height: 16px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
.chsdc-card__ribbon { background: var(--gold-500); color: var(--black); }
.chsdc-card__photos { background: rgba(0, 0, 0, .55); color: var(--on-dark); backdrop-filter: blur(4px); }
.chsdc-card__photos .chsdc-ico { width: 14px; height: 14px; }
.chsdc-card__logo { position: absolute; top: 16px; right: 16px; display: grid; place-items: center; width: 72px; height: 72px; padding: 9px; border-radius: 50%; background: var(--surface); box-shadow: 0 4px 12px rgba(0, 0, 0, .2); }
.chsdc-card__logo img { width: 100%; height: 100%; object-fit: contain; }
.chsdc-card__logo--mono { font-size: 24px; font-weight: 800; letter-spacing: -.02em; color: var(--accent); }

/* Variante marca: cabecera del color del local, logo protagonista */
.chsdc-card--marca .chsdc-card__hero { color: var(--on-accent); background-image: radial-gradient(circle at 100% 0, rgba(255, 255, 255, .16) 0 130px, transparent 131px), radial-gradient(circle at 100% 0, rgba(255, 255, 255, .08) 0 210px, transparent 211px); }
.chsdc-card--marca .chsdc-card__hero::before { display: none; }
.chsdc-card--marca .chsdc-card__logo { width: 112px; height: 112px; padding: 14px; }
.chsdc-card--marca .chsdc-card__tags { right: 140px; }
.chsdc-card--marca .chsdc-card__logo--mono { font-size: 40px; }

/* Variante destacada: ocupa la fila completa, cabecera a la izquierda */
.chsdc-card--destacada { grid-column: 1 / -1; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
.chsdc-card--destacada .chsdc-card__hero { grid-column: 1; grid-row: 1 / span 5; min-height: 380px; padding: 32px; border-bottom: 0; border-right: 5px solid var(--accent); }
.chsdc-card--destacada .chsdc-card__row { grid-column: 2; }
.chsdc-card--destacada .chsdc-card__row--meta { padding-top: 28px; }
.chsdc-card--destacada .chsdc-card__title { font-size: 42px; line-height: 44px; }

/* Filas del cuerpo */
.chsdc-card__row { min-width: 0; padding: 0 24px 18px; }
.chsdc-card__row--meta { padding-top: 22px; }
.chsdc-card__where { display: flex; align-items: flex-start; gap: 8px; margin: 0; font-size: 15px; line-height: 21px; font-weight: 700; color: var(--ink); }
.chsdc-card__where .chsdc-ico { margin-top: 1px; color: var(--green-500); }
.chsdc-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; margin: 8px 0 0; font-size: 14px; line-height: 20px; color: var(--ink-muted); }
.chsdc-card__meta > span { display: inline-flex; align-items: center; gap: 6px; }
.chsdc-card__meta .chsdc-ico { width: 16px; height: 16px; color: var(--green-500); }
.chsdc-card__meta .chsdc-price { font-size: 15px; }
.chsdc-card__desc { margin: 12px 0 0; font-size: 15px; line-height: 24px; font-weight: 300; color: var(--ink); }
.chsdc-card__row--hours .chsdc-hours { padding: 4px 16px; border-radius: 10px; background: var(--surface-alt); }
.chsdc-card__row--actions { align-self: end; padding: 18px 24px 22px; border-top: 1px solid var(--line); }
.chsdc-card__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.chsdc-card__actions .chsdc-btn--whatsapp, .chsdc-card__actions .chsdc-btn--green { flex: 1 1 150px; }
.chsdc-btn__badge { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: var(--radius-pill); background: var(--green-700); color: var(--on-green); font-size: 12px; font-weight: 800; }
.chsdc-card[style*="--accent"] .chsdc-btn__badge { background: var(--accent); color: var(--on-accent); }

/* Responsive de la grilla (por ancho del contenedor, no de la pantalla)
   > 860px: 2 columnas · 560–860px: 1 columna con card horizontal (como el ítem del sitio) · < 560px: card vertical */
@container chsdc (max-width: 860px) {
  .chsdc-grid { grid-template-columns: minmax(0, 1fr); }
  .chsdc-card, .chsdc-card--destacada { grid-template-columns: minmax(0, .95fr) minmax(0, 1fr); }
  .chsdc-card__hero, .chsdc-card--destacada .chsdc-card__hero { grid-column: 1; grid-row: 1 / span 5; min-height: 300px; padding: 24px; border-bottom: 0; border-right: 5px solid var(--accent); }
  .chsdc-card__row, .chsdc-card--destacada .chsdc-card__row { grid-column: 2; }
  .chsdc-card__row--meta, .chsdc-card--destacada .chsdc-card__row--meta { padding-top: 22px; }
  .chsdc-card--destacada .chsdc-card__title { font-size: 34px; line-height: 38px; }
  .chsdc-card__actions .chsdc-btn--whatsapp, .chsdc-card__actions .chsdc-btn--green { flex-basis: 100%; }
  .chsdc-card__actions .chsdc-btn--outline { flex: 1 1 0; padding: 0 12px; }
}
@container chsdc (max-width: 560px) {
  .chsdc-card, .chsdc-card--destacada { grid-template-columns: minmax(0, 1fr); }
  .chsdc-card__hero, .chsdc-card--destacada .chsdc-card__hero { grid-row: auto; min-height: 240px; border-right: 0; border-bottom: 5px solid var(--accent); }
  .chsdc-card__row, .chsdc-card--destacada .chsdc-card__row { grid-column: 1; }
}
@container chsdc (max-width: 460px) {
  .chsdc-card { margin-bottom: 24px; border-radius: 12px; }
  .chsdc-card__hero, .chsdc-card--destacada .chsdc-card__hero { min-height: 220px; padding: 18px; }
  .chsdc-card__title, .chsdc-card--destacada .chsdc-card__title { font-size: 27px; line-height: 31px; }
  .chsdc-card__cuisine { font-size: 17px; }
  .chsdc-card__logo { width: 58px; height: 58px; padding: 7px; }
  .chsdc-card--marca .chsdc-card__logo { width: 86px; height: 86px; }
  .chsdc-card__tags { top: 14px; left: 14px; right: 80px; }
  .chsdc-card--marca .chsdc-card__tags { right: 110px; }
  .chsdc-card__row { padding: 0 18px 16px; }
  .chsdc-card__row--meta { padding-top: 18px; }
  .chsdc-card__row--actions { padding: 16px 18px 18px; }
  .chsdc-card__row--hours .chsdc-hours { padding: 2px 12px; }
  .chsdc-hours { font-size: 14px; }
  .chsdc-card__actions .chsdc-btn--whatsapp, .chsdc-card__actions .chsdc-btn--green { flex-basis: 100%; }
  .chsdc-card__actions .chsdc-btn--outline { flex: 1 1 0; padding: 0 12px; }
}

/* ---------- Franja Food Trucks (sección .negro del sitio) ----------
   Encabezado arriba y grilla que se envuelve (sin scroll horizontal).
   Móvil: lista de filas horizontales (foto 96px + datos). */
.chsdc-trucks { padding: var(--space-7) var(--space-4); background: var(--black); color: var(--on-dark); container: chsdc / inline-size; }
.chsdc-trucks__inner { position: relative; max-width: 1140px; margin: 0 auto; }
.chsdc-trucks__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 48px; margin-bottom: 36px; }
.chsdc-trucks__title { margin: 0; font-size: 46px; line-height: 46px; font-weight: 100; font-style: italic; text-transform: uppercase; color: var(--on-dark); }
.chsdc-trucks__title strong { display: block; font-weight: 800; font-style: normal; color: var(--gold-500); }
.chsdc-trucks__lead { max-width: 440px; margin: 0; font-size: 16px; line-height: 26px; font-weight: 300; color: var(--on-dark); }
.chsdc-trucks__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
.chsdc-truck { position: relative; display: grid; grid-template-rows: auto 1fr; overflow: hidden; border: 1px solid rgba(255, 255, 255, .12); border-radius: 14px; background: rgba(255, 255, 255, .06); backdrop-filter: blur(4px); transition: background .2s, transform .3s cubic-bezier(.2, .7, .2, 1), border-color .2s; }
.chsdc-truck:hover { background: rgba(255, 255, 255, .1); border-color: rgba(211, 171, 5, .6); }
.chsdc-truck__media { height: 160px; overflow: hidden; background: var(--dark-2); display: grid; place-items: center; }
.chsdc-truck__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.chsdc-truck:hover .chsdc-truck__media img { transform: scale(1.06); }
.chsdc-truck__media--logo { background: var(--surface); }
.chsdc-truck__media--logo img { width: 62%; height: 72%; object-fit: contain; }
.chsdc-truck__mono { font-size: 44px; font-weight: 800; color: var(--gold-500); }
.chsdc-truck__body { display: grid; align-content: start; gap: 4px; padding: 16px 18px 18px; }
.chsdc-truck__name { margin: 0; font-size: 20px; line-height: 24px; font-weight: 800; color: var(--on-dark); }
.chsdc-truck__name a { color: inherit; text-decoration: none; }
.chsdc-truck__name a::after { content: ""; position: absolute; inset: 0; }
.chsdc-truck__name a:hover { text-decoration: underline; }
.chsdc-truck__info { margin: 0; font-size: 15px; line-height: 20px; font-weight: 300; font-style: italic; color: var(--on-dark); }
.chsdc-truck__when { justify-self: start; display: inline-flex; align-items: center; gap: 6px; margin: 8px 0 0; padding: 5px 11px; border-radius: var(--radius-pill); background: var(--gold-500); color: var(--black); font-size: 12px; line-height: 16px; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; }
.chsdc-truck__when .chsdc-ico { width: 14px; height: 14px; }
@container chsdc (max-width: 820px) {
  .chsdc-trucks__head { display: block; margin-bottom: 28px; }
  .chsdc-trucks__title { font-size: 38px; line-height: 40px; margin-bottom: 12px; }
}
@container chsdc (max-width: 560px) {
  .chsdc-trucks { padding: 64px var(--space-4); }
  .chsdc-trucks__title { font-size: 32px; line-height: 34px; }
  .chsdc-trucks__list { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .chsdc-truck { grid-template-rows: none; grid-template-columns: 96px minmax(0, 1fr); align-items: stretch; }
  .chsdc-truck__media { height: auto; min-height: 104px; }
  .chsdc-truck__mono { font-size: 30px; }
  .chsdc-truck__body { padding: 12px 14px; }
  .chsdc-truck__name { font-size: 17px; line-height: 21px; }
  .chsdc-truck__info { font-size: 14px; }
  .chsdc-truck__when { margin-top: 6px; font-size: 11px; }
}

/* ---------- Mapa del Club ---------- */
.chsdc-map { position: relative; z-index: 0; isolation: isolate; display: grid; grid-template-columns: minmax(0, 1fr) 360px; height: var(--chsdc-map-h, 600px); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: var(--surface); }
.chsdc-map__canvas { position: relative; z-index: 0; isolation: isolate; min-width: 0; height: 100%; background: var(--surface-alt); } /* los z-index internos de Leaflet (400–1000) quedan contenidos aquí y no pasan sobre el header fijo del tema (z-index 100) */
.chsdc-map__leaflet { position: absolute; inset: 0; background: var(--surface-alt); font-family: var(--font-body); }
.chsdc-map__tools { position: absolute; top: 14px; left: 14px; z-index: 500; display: flex; flex-wrap: wrap; gap: 8px; }
.chsdc-map__seg { display: inline-flex; padding: 3px; border-radius: var(--radius-pill); background: var(--surface); box-shadow: 0 2px 10px rgba(0, 0, 0, .18); }
.chsdc-map__seg button, .chsdc-map__btn { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 0 14px; border: 0; border-radius: var(--radius-pill); background: transparent; color: var(--ink); font: 700 13px/1 var(--font-body); cursor: pointer; }
.chsdc-map__seg button[aria-pressed="true"] { background: var(--green-700); color: var(--on-green); }
.chsdc-map__btn { background: var(--surface); box-shadow: 0 2px 10px rgba(0, 0, 0, .18); }
.chsdc-map__btn:hover { background: var(--green-050); }
.chsdc-map__seg button:focus-visible, .chsdc-map__btn:focus-visible { outline: 3px solid var(--gold-500); outline-offset: 2px; }
.chsdc-map__btn .chsdc-ico { width: 16px; height: 16px; }

/* Lista lateral */
.chsdc-legend { display: flex; flex-direction: column; min-height: 0; border-left: 1px solid var(--line); background: var(--surface); }
.chsdc-legend__search { position: relative; padding: 16px 16px 12px; border-bottom: 1px solid var(--line); }
.chsdc-legend__search input { width: 100%; height: 42px; padding: 0 14px 0 40px; border: 2px solid var(--line); border-radius: var(--radius-pill); background: var(--surface); color: var(--ink); font: 400 15px/1 var(--font-body); }
.chsdc-legend__search input:focus { outline: none; border-color: var(--green-500); }
.chsdc-legend__search .chsdc-ico { position: absolute; left: 30px; top: 29px; color: var(--ink-muted); }
.chsdc-legend__scroll { flex: 1; min-height: 0; overflow-y: auto; padding: 8px 8px 16px; overscroll-behavior: contain; }
.chsdc-legend h3 { margin: 10px 10px 6px; font-size: 12px; line-height: 16px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-muted); }
.chsdc-legend ol { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.chsdc-legend li[hidden] { display: none; }
.chsdc-legend li button { display: grid; grid-template-columns: 52px minmax(0, 1fr); align-items: center; gap: 12px; width: 100%; padding: 8px 10px; border: 0; border-radius: 10px; background: none; color: var(--ink); font: 800 15px/20px var(--font-body); text-align: left; cursor: pointer; transition: background .15s; }
.chsdc-legend li button:hover, .chsdc-legend li button.is-active { background: var(--green-050); }
.chsdc-legend li button:focus-visible { outline: 3px solid var(--gold-500); outline-offset: -3px; }
.chsdc-legend__thumb { position: relative; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 10px; background: var(--accent, var(--green-500)); color: var(--on-accent, var(--on-dark)); font-size: 17px; font-weight: 800; }
.chsdc-legend__thumb img { width: 100%; height: 100%; border-radius: 10px; object-fit: cover; }
.chsdc-legend__thumb--logo { background: var(--surface); border: 1px solid var(--line); }
.chsdc-legend__thumb--logo img { object-fit: contain; padding: 5px; }
.chsdc-legend__num { position: absolute; top: -6px; left: -6px; display: grid; place-items: center; min-width: 22px; height: 22px; padding: 0 5px; border: 2px solid var(--surface); border-radius: var(--radius-pill); background: var(--pin, var(--green-700)); color: var(--pin-ink, var(--on-green)); font-size: 11px; font-weight: 800; }
.chsdc-legend small { display: block; font-size: 13px; line-height: 18px; font-weight: 300; font-style: italic; color: var(--ink); }
.chsdc-legend__state { display: inline-flex; align-items: center; gap: 5px; margin-top: 2px; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--ink-muted); }
.chsdc-legend__state::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.chsdc-legend__state.is-open { color: var(--open-ink); }
.chsdc-legend__state.is-closed { color: var(--closed-ink); }
.chsdc-legend__state:empty { display: none; }
.chsdc-legend__access { display: grid; place-items: center; width: 52px; height: 40px; }
.chsdc-legend__empty { margin: 16px 10px; font-size: 14px; font-style: italic; font-weight: 300; }
@container chsdc (max-width: 860px) {
  .chsdc-map { grid-template-columns: minmax(0, 1fr); height: auto; }
  .chsdc-map__canvas { height: min(440px, var(--chsdc-map-h, 440px)); }
  .chsdc-legend { border-left: 0; border-top: 1px solid var(--line); max-height: 420px; }
}
@container chsdc (max-width: 460px) { .chsdc-map__canvas { height: min(380px, var(--chsdc-map-h, 380px)); } .chsdc-map__tools { top: 10px; left: 10px; } }

/* Pines (lista y leyenda) */
.chsdc-pin { display: inline-grid; place-items: center; width: 30px; height: 30px; padding: 0; border: 2px solid var(--surface); border-radius: 50%; background: var(--green-700); color: var(--on-green); font-family: var(--font-body); font-size: 13px; font-weight: 800; line-height: 1; }
.chsdc-pin--access { border-radius: 7px; background: var(--gold-500); color: var(--black); }

/* ---------- Panel lateral (.restaurant-panel del sitio) ---------- */
.chsdc-panel { position: fixed; top: 0; right: 0; z-index: 1000000; width: 90%; max-width: 600px; height: 100%; overflow-y: auto; background: var(--panel); color: var(--on-dark); box-shadow: -2px 0 5px rgba(0, 0, 0, .5); transform: translateX(105%); visibility: hidden; }
.chsdc-panel.is-open { transform: none; visibility: visible; }
.chsdc-panel[hidden] { display: block; }
.chsdc-panel__close .chsdc-ico { width: 16px; height: 16px; }
.chsdc-panel--demo { position: relative; z-index: auto; width: 100%; height: auto; transform: none; visibility: visible; }
.chsdc-panel-veil { position: fixed; inset: 0; z-index: 999999; background: rgba(0, 0, 0, .5); opacity: 0; pointer-events: none; transition: opacity .3s; }
.chsdc-panel-veil.is-open { opacity: 1; pointer-events: auto; }
.chsdc-panel__body { display: grid; gap: var(--space-4); padding: var(--space-5); }
.chsdc-panel__type { margin: 0; font-size: 16px; font-weight: 400; }
.chsdc-panel__title { margin: 0; font-size: 40px; line-height: 44px; font-weight: 800; text-transform: uppercase; }
.chsdc-panel__cuisine { margin: 0; font-size: 24px; line-height: 30px; font-weight: 300; font-style: italic; }
.chsdc-panel__desc { margin: 0; font-size: 16px; line-height: 26px; font-weight: 300; }
.chsdc-panel__close { display: inline-flex; align-items: center; gap: 6px; position: absolute; top: var(--space-3); right: var(--space-3); z-index: 2; min-height: 36px; padding: 0 var(--space-4); border: 0; border-radius: var(--radius-pill); background: var(--black); color: var(--on-dark); font: 700 13px/1 var(--font-body); cursor: pointer; }
.chsdc-panel__close:focus-visible { outline: 3px solid var(--gold-500); outline-offset: 2px; }
.chsdc-panel h3 { margin: 0 0 var(--space-2); font-size: 14px; line-height: 18px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--gold-500); }
.chsdc-panel .chsdc-hours dt, .chsdc-panel .chsdc-hours dd, .chsdc-panel .chsdc-service, .chsdc-panel .chsdc-price, .chsdc-panel .chsdc-card__meta { color: var(--on-dark); }
.chsdc-panel .chsdc-hours__row--closed dd { color: var(--closed-on-dark); }
.chsdc-panel .chsdc-hours__row.is-today dt::before { color: var(--gold-500); }
.chsdc-panel .chsdc-service .chsdc-ico, .chsdc-panel .chsdc-card__meta .chsdc-ico { color: var(--gold-500); }
.chsdc-panel .chsdc-price__off { color: var(--on-dark-muted); }
.chsdc-panel .chsdc-service { background: rgba(255, 255, 255, .1); }
.chsdc-panel .chsdc-service--featured { background: var(--gold-500); color: var(--black); }
.chsdc-panel .chsdc-service--featured .chsdc-ico { color: var(--black); }
.chsdc-panel .chsdc-hours__row { border-bottom-color: rgba(255, 255, 255, .16); }
.chsdc-panel .chsdc-card__meta { margin-top: 0; }
.chsdc-panel .chsdc-card__actions { padding-top: 0; }

.chsdc-panel__brand { display: grid; place-items: center; height: 220px; background: var(--accent, var(--green-500)); border-bottom: 6px solid var(--accent, var(--gold-500)); }
.chsdc-panel__brand .chsdc-card__logo { position: static; width: 128px; height: 128px; padding: 14px; }
.chsdc-panel__brand .chsdc-card__logo--mono { font-size: 44px; }
.chsdc-panel__menu-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4); }
.chsdc-panel__qr { width: 112px; height: 112px; padding: 6px; border-radius: var(--radius-sm); background: #fff; }
.chsdc-panel.is-open .chsdc-panel__body > * { animation: chsdc-fade-up .5s cubic-bezier(.2, .7, .2, 1) both; animation-delay: calc(var(--i, 0) * 60ms + 120ms); }

/* ---------- Galería (carrusel del panel) ---------- */
.chsdc-gallery { position: relative; background: var(--dark-2); border-bottom: 6px solid var(--accent, var(--gold-500)); }
.chsdc-gallery__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.chsdc-gallery__track::-webkit-scrollbar { display: none; }
.chsdc-gallery__track:focus-visible { outline: 3px solid var(--gold-500); outline-offset: -3px; }
.chsdc-gallery__slide { flex: 0 0 100%; height: 300px; margin: 0; overflow: hidden; scroll-snap-align: start; }
.chsdc-gallery__slide img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); transition: transform 6s ease-out; }
.chsdc-gallery__slide.is-current img { transform: scale(1); }
.chsdc-gallery__nav { position: absolute; top: 50%; display: grid; place-items: center; width: 40px; height: 40px; margin-top: -20px; padding: 0; border: 0; border-radius: 50%; background: rgba(0, 0, 0, .55); color: #fff; cursor: pointer; transition: background .2s, transform .2s; }
.chsdc-gallery__nav:hover { background: var(--black); transform: scale(1.08); }
.chsdc-gallery__nav:focus-visible { outline: 3px solid var(--gold-500); outline-offset: 2px; }
.chsdc-gallery__nav--prev { left: var(--space-3); }
.chsdc-gallery__nav--next { right: var(--space-3); }
.chsdc-gallery__count { position: absolute; left: var(--space-3); bottom: var(--space-3); padding: 3px 10px; border-radius: var(--radius-pill); background: rgba(0, 0, 0, .6); color: #fff; font-size: 12px; font-weight: 800; }

/* ---------- Franja de introducción (.negro + .tit-intro del sitio) ---------- */
.chsdc-intro { position: relative; padding: 110px 0 96px; background: var(--black); color: var(--on-dark); }
.chsdc-intro__grid { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px 72px; align-items: end; }
.chsdc-intro__title { margin: 0 0 20px; font-size: 70px; line-height: 72px; font-weight: 700; color: var(--on-dark); }
.chsdc-intro .chsdc-lead { max-width: 520px; }
.chsdc-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0; padding: 0; border-radius: 14px; overflow: hidden; background: rgba(255, 255, 255, .14); list-style: none; }
.chsdc-stats li { display: grid; gap: 4px; padding: 22px 24px; background: rgba(0, 0, 0, .55); backdrop-filter: blur(6px); }
.chsdc-stats b { font-size: 46px; line-height: 46px; font-weight: 800; color: var(--gold-500); font-variant-numeric: tabular-nums; }
.chsdc-stats span { font-size: 14px; line-height: 19px; font-weight: 300; }
.chsdc-jump { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px; }
.chsdc-jump a { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 0 20px; border: 2px solid rgba(255, 255, 255, .7); border-radius: var(--radius-pill); color: var(--on-dark); font-size: 14px; font-weight: 700; text-decoration: none; transition: background .2s, color .2s, border-color .2s; }
.chsdc-jump a:hover { background: var(--on-dark); border-color: var(--on-dark); color: var(--black); }
.chsdc-jump a:focus-visible { outline: 3px solid var(--gold-500); outline-offset: 2px; }
@container chsdc (max-width: 900px) { .chsdc-intro__grid { grid-template-columns: minmax(0, 1fr); gap: 32px; } .chsdc-intro__title { font-size: 52px; line-height: 56px; } }
@container chsdc (max-width: 460px) { .chsdc-intro__title { font-size: 42px; line-height: 46px; } .chsdc-stats li { padding: 16px; } .chsdc-stats b { font-size: 36px; line-height: 38px; } .chsdc-jump a { flex: 1 1 auto; justify-content: center; } }

/* ---------- Parallax ---------- */
.chsdc-parallax { position: relative; overflow: hidden; isolation: isolate; }
.chsdc-parallax__bg { position: absolute; left: 0; right: 0; top: -18%; bottom: -18%; z-index: -2; background-size: cover; background-position: center; will-change: transform; }
.chsdc-parallax.has-bg::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(63deg, rgba(0, 0, 0, .86) 25%, rgba(0, 0, 0, .55) 100%); }
.chsdc-card__photo[data-parallax] { top: -12%; bottom: -12%; height: 124%; }

/* ---------- Marcadores y globos de Leaflet ---------- */
.chsdc-marker { background: none; border: 0; }
.chsdc-drop { position: relative; width: 36px; height: 44px; filter: drop-shadow(0 3px 4px rgba(0, 0, 0, .35)); transform-origin: 50% 100%; transition: transform .2s ease; }
.chsdc-drop::before { content: ""; position: absolute; left: 2px; top: 0; width: 32px; height: 32px; border: 2px solid var(--surface); border-radius: 50% 50% 50% 0; background: var(--pin, var(--green-700)); transform: rotate(-45deg); transform-origin: 50% 50%; top: 2px; }
.chsdc-drop span { position: absolute; left: 0; top: 2px; width: 36px; height: 32px; display: grid; place-items: center; color: var(--pin-ink, var(--on-green)); font: 800 13px/1 var(--font-body); }
.chsdc-drop--access::before { border-radius: 7px; transform: none; left: 4px; top: 4px; width: 28px; height: 28px; background: var(--gold-500); }
.chsdc-drop--access { height: 36px; }
.chsdc-drop--access span { top: 4px; height: 28px; color: var(--black); }
.chsdc-marker:hover .chsdc-drop, .chsdc-marker.is-active .chsdc-drop { transform: scale(1.22); }
.chsdc-marker.is-active .chsdc-drop::after { content: ""; position: absolute; left: 50%; bottom: -4px; width: 14px; height: 6px; margin-left: -7px; border-radius: 50%; background: rgba(211, 171, 5, .7); animation: chsdc-ring 1.4s ease-out infinite; }
.chsdc-marker.is-dimmed { opacity: .22; pointer-events: none; }
.chsdc-anim .chsdc-marker.is-drop .chsdc-drop { animation: chsdc-drop .6s cubic-bezier(.3, 1.5, .5, 1) both; animation-delay: var(--drop-delay, 0ms); }
.chsdc .leaflet-popup-content-wrapper { padding: 0; border-radius: 14px; overflow: hidden; font-family: var(--font-body); box-shadow: 0 12px 30px rgba(0, 0, 0, .25); }
.chsdc .leaflet-popup-content { width: 250px !important; margin: 0; font-size: 14px; line-height: 20px; }
.chsdc .leaflet-popup-close-button { top: 8px !important; right: 8px !important; width: 26px !important; height: 26px !important; border-radius: 50%; background: rgba(0, 0, 0, .55) !important; color: #fff !important; font: 400 18px/26px var(--font-body) !important; text-align: center; }
.chsdc-popup__media { height: 110px; background: var(--accent, var(--green-500)); border-bottom: 4px solid var(--accent, var(--green-500)); }
.chsdc-popup__media img { width: 100%; height: 100%; object-fit: cover; }
.chsdc-popup__body { display: grid; gap: 6px; padding: 12px 14px 14px; }
.chsdc .leaflet-popup-content .chsdc-popup p { margin: 0; }
.chsdc .leaflet-popup-content .chsdc-popup .chsdc-status { justify-self: start; }
.chsdc-popup__title { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 17px; line-height: 21px; font-weight: 800; color: var(--ink); }
.chsdc-popup__title .chsdc-legend__num { position: static; border: 0; }
.chsdc-popup__sub { margin: 0; font-size: 13px; font-style: italic; font-weight: 300; color: var(--ink); }
.chsdc-popup__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.chsdc-popup__actions .chsdc-btn { min-height: 32px; padding: 0 14px; font-size: 12px; }
.chsdc-popup--access .chsdc-popup__body { padding: 14px 40px 14px 14px; }

/* ---------- Animaciones y transiciones ----------
   Todo cuelga de .chsdc-anim (interruptor en Ajustes) y se apaga con prefers-reduced-motion. */
@keyframes chsdc-fade-up { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes chsdc-out { to { opacity: 0; transform: scale(.94) translateY(10px); } }
@keyframes chsdc-pop { 0% { transform: scale(1); } 40% { transform: scale(1.18); } 100% { transform: scale(1); } }
@keyframes chsdc-pop-in { from { opacity: 0; transform: translateY(10px) scale(.92); } to { opacity: 1; transform: none; } }
@keyframes chsdc-drop { 0% { opacity: 0; transform: translateY(-40px) scale(.6); } 100% { opacity: 1; transform: none; } }
@keyframes chsdc-ring { 0% { transform: scale(.6); opacity: 1; } 100% { transform: scale(2.6); opacity: 0; } }
@keyframes chsdc-pulse { 0% { box-shadow: 0 0 0 0 rgba(211, 171, 5, .7); } 100% { box-shadow: 0 0 0 16px rgba(211, 171, 5, 0); } }
@keyframes chsdc-live { 0% { box-shadow: 0 0 0 0 currentColor; } 70%, 100% { box-shadow: 0 0 0 6px transparent; } }
@keyframes chsdc-shine { from { transform: translateX(-120%) skewX(-20deg); } to { transform: translateX(220%) skewX(-20deg); } }
@keyframes chsdc-bounce { 0%, 100% { transform: translateY(0); } 40% { transform: translateY(-6px); } 70% { transform: translateY(-2px); } }

/* Aparición al hacer scroll (variantes) */
.chsdc-anim .chsdc-reveal { opacity: 0; transform: translateY(32px); transition: opacity .8s ease, transform .8s cubic-bezier(.2, .7, .2, 1); transition-delay: var(--reveal-delay, 0ms); }
.chsdc-anim .chsdc-reveal--left { transform: translateX(-48px); }
.chsdc-anim .chsdc-reveal--right { transform: translateX(48px); }
.chsdc-anim .chsdc-reveal--zoom { transform: scale(.96); }
.chsdc-anim .chsdc-reveal.is-visible { opacity: 1; transform: none; }
.chsdc-anim .chsdc-card.chsdc-reveal.is-visible { transition: opacity .8s ease, transform .25s ease, box-shadow .25s ease, border-color .25s; }

/* Encabezados: eyebrow que se cierra, título y bajada escalonados, línea dorada que crece */
.chsdc-head h2::after { content: ""; display: block; width: 56px; height: 4px; margin: 18px auto 0; border-radius: 4px; background: var(--gold-500); transform-origin: 50% 50%; }
.chsdc-anim .chsdc-head.chsdc-reveal { opacity: 1; transform: none; }
.chsdc-anim .chsdc-head > * { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s cubic-bezier(.2, .7, .2, 1), letter-spacing 1.1s ease; }
.chsdc-anim .chsdc-head .chsdc-head__eyebrow { letter-spacing: .4em; }
.chsdc-anim .chsdc-head h2 { transition-delay: .12s; }
.chsdc-anim .chsdc-head p { transition-delay: .24s; }
.chsdc-anim .chsdc-head h2::after { transform: scaleX(0); transition: transform .9s cubic-bezier(.2, .7, .2, 1) .45s; }
.chsdc-anim .chsdc-head.is-visible > * { opacity: 1; transform: none; }
.chsdc-anim .chsdc-head.is-visible .chsdc-head__eyebrow { letter-spacing: .04em; }
.chsdc-anim .chsdc-head.is-visible h2::after { transform: scaleX(1); }

/* Intro: cifras que entran escalonadas y cuentan, píldoras con flecha */
.chsdc-anim .chsdc-stats li { opacity: 0; transform: translateY(16px) scale(.97); transition: opacity .6s ease, transform .6s cubic-bezier(.2, .7, .2, 1), background .3s; transition-delay: calc(var(--i, 0) * 110ms + 150ms); }
.chsdc-anim .chsdc-stats.is-visible li { opacity: 1; transform: none; }
.chsdc-stats li:hover { background: rgba(0, 0, 0, .75); }
.chsdc-stats li:hover b { color: var(--on-dark); transition: color .3s; }
.chsdc-jump a .chsdc-ico { transition: transform .25s ease; }
.chsdc-jump a:hover .chsdc-ico { transform: translateY(2px); animation: chsdc-bounce .6s ease; }

/* Filtros: chips escalonados, hover con elevación, pop al activar */
.chsdc-anim .chsdc-filters .chsdc-chip { opacity: 0; transform: translateY(10px); transition: opacity .45s ease, transform .45s cubic-bezier(.2, .7, .2, 1), background-color .15s, color .15s, box-shadow .2s; transition-delay: calc(var(--i, 0) * 45ms); }
.chsdc-anim .chsdc-filters.is-visible .chsdc-chip { opacity: 1; transform: none; }
.chsdc-chip:hover { transform: translateY(-2px); box-shadow: 0 6px 14px rgba(0, 0, 0, .08); transition-delay: 0s !important; }
.chsdc-chip:active { transform: scale(.96); }
.chsdc-chip[aria-pressed="true"] .chsdc-ico, .chsdc-chip[aria-pressed="true"] .chsdc-chip__n { animation: chsdc-pop .35s ease; }
@keyframes chsdc-rail-in { from { opacity: 0; transform: translateX(-14px); } to { opacity: 1; transform: none; } }
.chsdc-anim .chsdc-rail.is-visible .chsdc-rail__head, .chsdc-anim .chsdc-rail.is-visible .chsdc-rail__btn { animation: chsdc-rail-in .45s cubic-bezier(.2, .8, .2, 1) both; animation-delay: calc(var(--i, 0) * 35ms + 120ms); }
.chsdc-anim .chsdc-rail.is-visible .chsdc-rail__head { animation-delay: 60ms; }
.chsdc-filters__count strong.is-bump, .chsdc-rail strong.is-bump { display: inline-block; animation: chsdc-pop .35s ease; }

/* Cards: cabecera que se descubre, filas escalonadas, hover con detalles */
.chsdc-anim .chsdc-card.chsdc-reveal .chsdc-card__hero { clip-path: inset(0 0 100% 0); transition: clip-path 1s cubic-bezier(.7, 0, .2, 1) calc(var(--reveal-delay, 0ms) + 80ms); }
.chsdc-anim .chsdc-card.chsdc-reveal.is-visible .chsdc-card__hero { clip-path: inset(0 0 0 0); }
.chsdc-anim .chsdc-card.chsdc-reveal .chsdc-card__heading { opacity: 0; transform: translateY(16px); transition: opacity .6s ease calc(var(--reveal-delay, 0ms) + 600ms), transform .6s cubic-bezier(.2, .7, .2, 1) calc(var(--reveal-delay, 0ms) + 600ms); }
.chsdc-anim .chsdc-card.chsdc-reveal.is-visible .chsdc-card__heading { opacity: 1; transform: none; }
.chsdc-anim .chsdc-card.chsdc-reveal .chsdc-card__row { opacity: 0; transform: translateY(12px); transition: opacity .5s ease, transform .5s cubic-bezier(.2, .7, .2, 1); }
.chsdc-anim .chsdc-card.chsdc-reveal.is-visible .chsdc-card__row { opacity: 1; transform: none; }
.chsdc-anim .chsdc-card.is-visible .chsdc-card__row--meta { transition-delay: calc(var(--reveal-delay, 0ms) + 350ms); }
.chsdc-anim .chsdc-card.is-visible .chsdc-card__row--services { transition-delay: calc(var(--reveal-delay, 0ms) + 450ms); }
.chsdc-anim .chsdc-card.is-visible .chsdc-card__row--hours { transition-delay: calc(var(--reveal-delay, 0ms) + 550ms); }
.chsdc-anim .chsdc-card.is-visible .chsdc-card__row--actions { transition-delay: calc(var(--reveal-delay, 0ms) + 650ms); }
.chsdc-card__heading { transition: transform .35s cubic-bezier(.2, .7, .2, 1); }
.chsdc-card:hover .chsdc-card__heading { transform: translateY(-6px); }
.chsdc-card__more { position: absolute; left: 50%; top: 46%; display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: var(--radius-pill); background: var(--surface); color: var(--ink); font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; box-shadow: 0 8px 20px rgba(0, 0, 0, .25); opacity: 0; transform: translate(-50%, -50%) scale(.85); transition: opacity .3s ease, transform .35s cubic-bezier(.3, 1.4, .5, 1); pointer-events: none; }
.chsdc-card__more .chsdc-ico { width: 14px; height: 14px; }
.chsdc-card:hover .chsdc-card__more, .chsdc-card__hero:focus-within .chsdc-card__more { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.chsdc-card__more .chsdc-ico { transition: transform .3s ease; }
.chsdc-card:hover .chsdc-card__more .chsdc-ico { transform: translateX(3px); }
.chsdc-card__logo { transition: transform .4s cubic-bezier(.3, 1.4, .5, 1); }
.chsdc-card:hover .chsdc-card__logo { transform: rotate(-6deg) scale(1.06); }
.chsdc-service { transition: transform .2s ease, background .2s; }
.chsdc-service:hover { transform: translateY(-2px); }
.chsdc-card.is-entering, .chsdc-mini.is-entering { animation: chsdc-fade-up .5s cubic-bezier(.2, .7, .2, 1) both; }
.chsdc-card.is-leaving, .chsdc-mini.is-leaving { animation: chsdc-out .22s ease forwards; pointer-events: none; }
.chsdc-card.is-highlight, .chsdc-mini.is-highlight, .chsdc-ficha.is-highlight { animation: chsdc-pulse 1.2s ease-out 2; }
.chsdc-status--open::before { animation: chsdc-live 1.8s ease-out infinite; }
.chsdc-status:not([hidden]) { animation: chsdc-pop-in .45s ease both; }

/* Botones: elevación, ícono que se mueve y brillo en WhatsApp */
.chsdc-btn { transition: background-color .15s, border-color .15s, color .15s, transform .2s ease, box-shadow .2s ease; }
.chsdc-btn:not(.chsdc-btn--link):hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(0, 0, 0, .12); }
.chsdc-btn:not(.chsdc-btn--link):active { transform: translateY(0); box-shadow: none; }
.chsdc-btn .chsdc-ico { transition: transform .25s ease; }
.chsdc-btn:hover .chsdc-ico { transform: translateX(2px) rotate(-6deg); }
.chsdc-btn--whatsapp { position: relative; overflow: hidden; isolation: isolate; }
.chsdc-btn--whatsapp::after { content: ""; position: absolute; inset: 0 auto 0 0; z-index: -1; width: 40%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .55), transparent); transform: translateX(-120%) skewX(-20deg); }
.chsdc-btn--whatsapp:hover::after { animation: chsdc-shine .8s ease; }
.chsdc-btn:hover .chsdc-btn__badge { animation: chsdc-pop .35s ease; }

/* Food trucks */
.chsdc-truck:hover { transform: translateY(-6px); }

/* Mapa: lista escalonada, globo que aparece, pines con rebote */
.chsdc-anim .chsdc-map .chsdc-legend li { opacity: 0; transform: translateX(16px); transition: opacity .45s ease, transform .45s cubic-bezier(.2, .7, .2, 1); transition-delay: calc(var(--i, 0) * 55ms + 300ms); }
.chsdc-anim .chsdc-map.is-visible .chsdc-legend li { opacity: 1; transform: none; }
.chsdc-legend li button { transition: background .15s, transform .2s ease; }
.chsdc-legend li button:hover { transform: translateX(4px); }
.chsdc-legend__thumb img { transition: transform .3s ease; }
.chsdc-legend li button:hover .chsdc-legend__thumb img { transform: scale(1.08); }
.chsdc .leaflet-popup-content-wrapper, .chsdc .leaflet-popup-tip-container { animation: chsdc-pop-in .3s cubic-bezier(.2, .9, .3, 1.2) both; transform-origin: 50% 100%; }
.chsdc-marker:hover .chsdc-drop { animation: chsdc-bounce .6s ease; }
.chsdc-map__btn, .chsdc-map__seg button { transition: background .15s, color .15s, transform .2s; }
.chsdc-map__btn:hover { transform: translateY(-1px); }

/* Panel */
.chsdc-panel { transition: transform .45s cubic-bezier(.2, .8, .2, 1), visibility 0s linear .45s; }
.chsdc-panel.is-open { transition: transform .45s cubic-bezier(.2, .8, .2, 1), visibility 0s; }
.chsdc-panel__close .chsdc-ico { transition: transform .3s ease; }
.chsdc-panel__close:hover .chsdc-ico { transform: rotate(90deg); }
.chsdc-panel-veil { backdrop-filter: blur(0); transition: opacity .35s, backdrop-filter .35s; }
.chsdc-panel-veil.is-open { backdrop-filter: blur(3px); }

/* ---------- Página ---------- */
.chsdc-container { max-width: 1140px; margin: 0 auto; padding: 0 var(--space-4); container: chsdc / inline-size; }
.chsdc-section { padding: var(--space-7) 0 60px; }
.chsdc-section--map { padding-top: var(--space-7); }
.chsdc-card, .chsdc-section, .chsdc-trucks, .chsdc-filters { scroll-margin-top: calc(var(--chsdc-sticky-top, 90px) + 16px); }
.chsdc-head { max-width: 760px; margin: 0 auto 44px; text-align: center; }
.chsdc-head__eyebrow { display: block; margin: 0 0 6px; font-size: 20px; line-height: 24px; font-weight: 100; font-style: italic; letter-spacing: .04em; text-transform: uppercase; color: var(--ink); }
.chsdc-head h2 { margin: 0; font-size: 44px; line-height: 50px; font-weight: 800; color: var(--ink); }
.chsdc-head p { margin: 14px auto 0; max-width: 620px; font-size: 18px; line-height: 28px; font-weight: 300; }
@container chsdc (max-width: 620px) {
  .chsdc-head { margin-bottom: 28px; }
  .chsdc-head h2 { font-size: 32px; line-height: 38px; }
  .chsdc-head p { font-size: 16px; line-height: 25px; }
}
.chsdc-empty { padding: var(--space-6) var(--space-4) 80px; text-align: center; font-size: 18px; font-weight: 300; font-style: italic; }
.chsdc-empty[hidden] { display: none; }
.chsdc-note { display: flex; gap: var(--space-3); align-items: flex-start; margin: 0 0 var(--space-6); padding: 18px 22px; border-radius: 12px; background: var(--surface-alt); font-size: 14px; line-height: 21px; font-weight: 300; }
.chsdc-note .chsdc-ico { color: var(--green-500); margin-top: 1px; }
@container chsdc (max-width: 620px) { .chsdc-section { padding: 64px 0 40px; } }
/* ==========================================================================
   Shortcodes: columnas, carrusel, filas compactas, ficha a la vista, bloques embebidos
   ========================================================================== */

/* Columnas: [chs_locales columnas="1|2|3"] */
.chsdc-grid--c1 { grid-template-columns: minmax(0, 1fr); }
.chsdc-grid--c1 .chsdc-card { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.chsdc-grid--c1 .chsdc-card .chsdc-card__hero { grid-column: 1; grid-row: 1 / span 5; min-height: 320px; border-bottom: 0; border-right: 5px solid var(--accent); }
.chsdc-grid--c1 .chsdc-card .chsdc-card__row { grid-column: 2; }
.chsdc-grid--c3 { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 24px; }
.chsdc-grid--c3 .chsdc-card .chsdc-card__hero { min-height: 240px; padding: 20px; }
.chsdc-grid--c3 .chsdc-card .chsdc-card__title { font-size: 26px; line-height: 30px; }
.chsdc-grid--c3 .chsdc-card .chsdc-card__cuisine { font-size: 17px; }
.chsdc-grid--c3 .chsdc-card .chsdc-card__row { padding-left: 20px; padding-right: 20px; }
.chsdc-grid--c3 .chsdc-card .chsdc-card__logo { width: 60px; height: 60px; padding: 8px; }
.chsdc-grid--c3 .chsdc-card--marca .chsdc-card__logo { width: 88px; height: 88px; }
.chsdc-grid--c3 .chsdc-card--destacada .chsdc-card__title { font-size: 38px; line-height: 42px; }
.chsdc-grid--c3 .chsdc-card__actions .chsdc-btn--outline { flex: 1 1 0; padding: 0 12px; }
@container chsdc (min-width: 861px) and (max-width: 1000px) { .chsdc-grid--c3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container chsdc (max-width: 860px) { .chsdc-grid--c3 { grid-template-columns: minmax(0, 1fr); } }
@container chsdc (max-width: 560px) {
  .chsdc-grid--c1 .chsdc-card { grid-template-columns: minmax(0, 1fr); }
  .chsdc-grid--c1 .chsdc-card .chsdc-card__hero { grid-row: auto; min-height: 240px; border-right: 0; border-bottom: 5px solid var(--accent); }
  .chsdc-grid--c1 .chsdc-card .chsdc-card__row { grid-column: 1; }
}

/* Carrusel: [chs_locales vista="carrusel"] — deslizable, con flechas y barra de avance.
   El desplazamiento horizontal queda dentro del carrusel (la página no se mueve de lado). */
.chsdc-carousel { position: relative; min-width: 0; }
.chsdc-grid--carrusel { grid-template-columns: none; grid-template-rows: repeat(5, auto); grid-auto-flow: column; grid-auto-columns: calc((100% - 48px) / 3); column-gap: 24px; margin: -10px -6px 0; padding: 10px 6px 14px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding: 0 6px; scrollbar-width: none; }
.chsdc-grid--carrusel::-webkit-scrollbar { display: none; }
.chsdc-grid--carrusel:focus-visible { outline: 3px solid var(--gold-500); outline-offset: 2px; border-radius: 14px; }
.chsdc-grid--carrusel .chsdc-card, .chsdc-grid--carrusel .chsdc-card--destacada { grid-column: auto; grid-template-columns: minmax(0, 1fr); margin-bottom: 0; scroll-snap-align: start; }
.chsdc-grid--carrusel .chsdc-card .chsdc-card__hero { grid-column: 1; grid-row: auto; min-height: 250px; padding: 22px; border-right: 0; border-bottom: 5px solid var(--accent); }
.chsdc-grid--carrusel .chsdc-card .chsdc-card__row { grid-column: 1; padding-left: 22px; padding-right: 22px; }
.chsdc-grid--carrusel .chsdc-card .chsdc-card__row--meta { padding-top: 20px; }
.chsdc-grid--carrusel .chsdc-card .chsdc-card__title { font-size: 27px; line-height: 31px; }
.chsdc-grid--carrusel .chsdc-card .chsdc-card__cuisine { font-size: 17px; }
.chsdc-grid--carrusel .chsdc-card__desc { display: none; }
.chsdc-grid--carrusel .chsdc-card__actions .chsdc-btn--whatsapp, .chsdc-grid--carrusel .chsdc-card__actions .chsdc-btn--green { flex-basis: 100%; }
.chsdc-grid--carrusel .chsdc-card__actions .chsdc-btn--outline { flex: 1 1 0; padding: 0 12px; }
.chsdc-carousel__nav { display: flex; align-items: center; gap: 16px; margin-top: 18px; }
.chsdc-carousel__bar { flex: 1; height: 4px; border-radius: 4px; background: var(--line); overflow: hidden; }
.chsdc-carousel__bar span { display: block; width: 30%; height: 100%; border-radius: 4px; background: var(--gold-500); transition: width .3s ease; }
.chsdc-carousel__btn { display: grid; place-items: center; flex: none; width: 46px; height: 46px; padding: 0; border: 2px solid var(--green-500); border-radius: 50%; background: var(--surface); color: var(--ink); cursor: pointer; transition: background .15s, color .15s, transform .2s, opacity .2s; }
.chsdc-carousel__btn:hover:not(:disabled) { background: var(--green-500); color: var(--on-green); transform: scale(1.06); }
.chsdc-carousel__btn:focus-visible { outline: 3px solid var(--gold-500); outline-offset: 2px; }
.chsdc-carousel__btn:disabled { opacity: .3; cursor: default; }
.chsdc-carousel.is-static .chsdc-carousel__nav { display: none; }
.chsdc-carousel + .chsdc-empty { padding-top: 0; }
@container chsdc (max-width: 900px) { .chsdc-grid--carrusel { grid-auto-columns: calc((100% - 24px) / 2); } }
@container chsdc (max-width: 560px) {
  .chsdc-grid--carrusel { grid-auto-columns: 86%; column-gap: 14px; }
  .chsdc-grid--carrusel .chsdc-card .chsdc-card__hero { min-height: 220px; padding: 18px; }
  .chsdc-grid--carrusel .chsdc-card .chsdc-card__row { padding-left: 18px; padding-right: 18px; }
  .chsdc-carousel__btn { width: 40px; height: 40px; }
}

/* Filas compactas: [chs_locales vista="compacta"] — foto, nombre, estado, horario de hoy y acciones */
.chsdc-rows { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; margin-bottom: 32px; }
.chsdc-rows--c2, .chsdc-rows--c3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px; }
.chsdc-mini { --accent: var(--green-500); --on-accent: var(--on-dark); position: relative; display: grid; grid-template-columns: 88px minmax(0, 1fr) auto; align-items: center; gap: 18px; min-width: 0; padding: 12px 16px 12px 12px; background: var(--surface); border: 1px solid var(--line); border-left: 5px solid var(--accent); border-radius: 14px; transition: transform .25s ease, box-shadow .25s ease; }
.chsdc-mini[hidden] { display: none; }
.chsdc-mini:hover { transform: translateY(-3px); box-shadow: 0 16px 32px -16px rgba(0, 0, 0, .28); }
.chsdc-mini__media { position: relative; display: grid; place-items: center; width: 88px; height: 88px; border-radius: 10px; background: var(--accent); color: var(--on-accent); font-size: 24px; font-weight: 800; }
.chsdc-mini__media img { width: 100%; height: 100%; border-radius: 10px; object-fit: cover; transition: filter .3s ease; }
.chsdc-mini:hover .chsdc-mini__media img { filter: saturate(1.15) brightness(1.05); }
.chsdc-mini__media--logo { background: var(--surface); border: 1px solid var(--line); }
.chsdc-mini__media--logo img { object-fit: contain; padding: 8px; }
.chsdc-mini__media .chsdc-legend__num { top: -8px; left: -8px; }
.chsdc-mini__main { min-width: 0; }
.chsdc-mini__sub { margin: 0; overflow: hidden; font-size: 12px; line-height: 16px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; text-overflow: ellipsis; color: var(--ink-muted); }
.chsdc-mini__title { margin: 3px 0 7px; font-family: var(--font-body); font-size: 21px; line-height: 25px; font-weight: 800; color: var(--ink); overflow-wrap: anywhere; }
.chsdc-mini__title button { all: unset; cursor: pointer; }
.chsdc-mini__title button::after { content: ""; position: absolute; inset: 0; border-radius: 14px; }
.chsdc-mini__title button:focus-visible { outline: 3px solid var(--gold-500); outline-offset: 3px; }
.chsdc-mini__info { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0; font-size: 14px; line-height: 20px; color: var(--ink); }
.chsdc-mini__today { font-weight: 600; }
.chsdc-mini__today:empty { display: none; }
.chsdc-mini__price .chsdc-price { font-size: 14px; }
.chsdc-mini__actions { position: relative; z-index: 1; display: flex; align-items: center; gap: 8px; }
.chsdc-btn--icon { width: 42px; min-height: 42px; padding: 0; }
.chsdc-btn--icon .chsdc-ico { margin: 0; }
/* En 2 columnas las acciones bajan bajo el nombre para que el texto respire */
@container chsdc (min-width: 1001px) {
  .chsdc-rows--c2 .chsdc-mini, .chsdc-rows--c3 .chsdc-mini { grid-template-columns: 96px minmax(0, 1fr); grid-template-rows: auto auto; align-items: start; gap: 10px 18px; padding: 14px 16px 14px 14px; }
  .chsdc-rows--c2 .chsdc-mini__media, .chsdc-rows--c3 .chsdc-mini__media { grid-row: 1 / span 2; width: 96px; height: 96px; }
  .chsdc-rows--c2 .chsdc-mini__actions, .chsdc-rows--c3 .chsdc-mini__actions { grid-column: 2; }
}
@container chsdc (max-width: 1000px) { .chsdc-rows--c2, .chsdc-rows--c3 { grid-template-columns: minmax(0, 1fr); } }
@container chsdc (max-width: 620px) {
  .chsdc-mini { grid-template-columns: 68px minmax(0, 1fr); gap: 12px 14px; padding: 12px; }
  .chsdc-mini__media { width: 68px; height: 68px; font-size: 20px; }
  .chsdc-mini__title { font-size: 18px; line-height: 23px; }
  .chsdc-mini__actions { grid-column: 1 / -1; }
  .chsdc-mini__actions .chsdc-btn--whatsapp, .chsdc-mini__actions .chsdc-btn--green { flex: 1 1 auto; }
}

/* Ficha a la vista: [chs_local vista="ficha"] — galería a la izquierda, datos a la derecha */
.chsdc-fichas { display: grid; gap: 32px; margin-bottom: 32px; }
.chsdc-panel--inline { position: relative; top: auto; right: auto; z-index: auto; width: 100%; max-width: none; height: auto; overflow: hidden; border-radius: 16px; box-shadow: 0 30px 60px -36px rgba(0, 0, 0, .55); transform: none; visibility: visible; transition: none; }
.chsdc-panel--inline .chsdc-panel__inner { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
.chsdc-panel--inline .chsdc-gallery, .chsdc-panel--inline .chsdc-panel__brand { height: 100%; min-height: 440px; border-bottom: 0; border-right: 6px solid var(--accent, var(--gold-500)); }
.chsdc-panel--inline .chsdc-gallery__track { height: 100%; }
.chsdc-panel--inline .chsdc-gallery__slide { height: auto; min-height: 440px; }
.chsdc-panel--inline .chsdc-panel__body { align-content: start; padding: 36px 36px 32px; }
.chsdc-panel--inline .chsdc-panel__title { font-size: 36px; line-height: 40px; }
.chsdc-panel--inline .chsdc-status { justify-self: start; margin-bottom: 8px; }
.chsdc-anim .chsdc-panel--inline .chsdc-panel__body > * { opacity: 0; transform: translateY(14px); transition: opacity .6s ease, transform .6s cubic-bezier(.2, .7, .2, 1); transition-delay: calc(var(--i, 0) * 70ms + 250ms); }
.chsdc-anim .chsdc-panel--inline.is-visible .chsdc-panel__body > * { opacity: 1; transform: none; }
@container chsdc (max-width: 760px) {
  .chsdc-panel--inline .chsdc-panel__inner { grid-template-columns: minmax(0, 1fr); }
  .chsdc-panel--inline .chsdc-gallery, .chsdc-panel--inline .chsdc-panel__brand { min-height: 0; height: auto; border-right: 0; border-bottom: 6px solid var(--accent, var(--gold-500)); }
  .chsdc-panel--inline .chsdc-panel__brand { height: 220px; }
  .chsdc-panel--inline .chsdc-gallery__slide { min-height: 0; height: 280px; }
  .chsdc-panel--inline .chsdc-panel__body { padding: 24px 20px; }
  .chsdc-panel--inline .chsdc-panel__title { font-size: 30px; line-height: 34px; }
}

/* Botón "Ver todos" y bloques embebidos en otras páginas */
.chsdc-more { margin: 4px 0 0; text-align: center; }
.chsdc-more .chsdc-btn { min-height: 48px; padding: 0 28px; font-size: 15px; }
.chsdc--embed .chsdc-section { padding: 40px 0 24px; }
.chsdc--embed .chsdc-head { margin-bottom: 32px; }
.chsdc--chs-local .chsdc-section { padding: 12px 0; }
.chsdc--chs-local .chsdc-grid .chsdc-card, .chsdc--chs-local .chsdc-rows, .chsdc--chs-local .chsdc-fichas { margin-bottom: 0; }
.chsdc--chs-mapa-club .chsdc-section--map { padding-bottom: 40px; }
.chsdc-map--solo { grid-template-columns: minmax(0, 1fr); }
.chsdc-trucks__empty { display: flex; align-items: center; gap: 14px; margin: 0; padding: 22px 26px; border: 1px dashed rgba(255, 255, 255, .3); border-radius: 14px; font-size: 18px; line-height: 26px; font-weight: 300; font-style: italic; }
.chsdc-trucks__empty .chsdc-ico { width: 28px; height: 28px; color: var(--gold-500); }
.chsdc-missing { padding: 12px 16px; border: 1px dashed #b32d2e; border-radius: 8px; color: #b32d2e; }

/* Enlace a la página del local (panel lateral y ficha a la vista) */
.chsdc-panel__page { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 4px 0 18px; padding: 14px 18px; border: 1px solid rgba(255, 255, 255, .22); border-radius: 14px; color: var(--on-dark) !important; text-decoration: none !important; transition: background .2s, border-color .2s, transform .2s; }
.chsdc-panel__page strong { display: block; font-size: 16px; line-height: 22px; font-weight: 800; }
.chsdc-panel__page span { font-size: 13px; line-height: 18px; color: var(--on-dark-muted); }
.chsdc-panel__page .chsdc-ico { flex: none; width: 22px; height: 22px; color: var(--gold-500); transition: transform .25s; }
.chsdc-panel__page:hover { background: rgba(255, 255, 255, .08); border-color: var(--gold-500); }
.chsdc-panel__page:hover .chsdc-ico { transform: translateX(4px); }
.chsdc-card__title a, .chsdc-mini__title a { color: inherit !important; text-decoration: none !important; }
.chsdc-card__title a::after { content: ""; position: absolute; inset: 0; }

/* ==========================================================================
   Ficha del local — página propia /donde-comer/{local}/ (v1.3)
   Hero a sangre con la foto (el header transparente del tema queda encima, como en el sitio),
   navegación de secciones fija, resumen + tarjeta de horarios, carta con pestañas y PDF,
   galería mosaico con visor, cómo llegar con mapa, reserva y barra de acciones en móvil.
   ========================================================================== */
.chsdc-fpage { background: var(--surface); overflow-x: clip; }
.chsdc-fpage a { text-decoration: none; }
html.chsdc-noscroll { overflow: hidden; }
.chsdc-btn--ghost { background: rgba(255, 255, 255, .08); color: var(--on-dark) !important; border-color: rgba(255, 255, 255, .3); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.chsdc-btn--ghost:hover { background: rgba(255, 255, 255, .2); }

/* ---------- Hero ---------- */
.chsdc-fhero { position: relative; isolation: isolate; display: flex; align-items: flex-end; min-height: clamp(560px, 88vh, 860px); padding: 150px 0 88px; background: var(--black); color: var(--on-dark); overflow: hidden; }
.chsdc-fhero__media { position: absolute; left: 0; right: 0; top: -10%; bottom: -10%; z-index: -2; will-change: transform; }
.chsdc-fhero__media img { width: 100%; height: 100%; object-fit: cover; object-position: var(--photo-pos, center); }
.chsdc-anim .chsdc-fhero__media img { animation: chsdc-kenburns 18s cubic-bezier(.2, .6, .2, 1) both; }
@keyframes chsdc-kenburns { from { transform: scale(1.14); } to { transform: scale(1.02); } }
.chsdc-fhero__veil { position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(0, 0, 0, .62) 0%, rgba(0, 0, 0, .12) 28%, rgba(0, 0, 0, .3) 55%, rgba(0, 0, 0, .9) 100%), linear-gradient(90deg, rgba(0, 0, 0, .55) 0%, rgba(0, 0, 0, 0) 70%); }
.chsdc-fhero--plain { background: radial-gradient(120% 90% at 80% 10%, var(--accent, var(--green-700)) 0%, var(--dark-2) 60%); }
.chsdc-fhero__inner { position: relative; width: 100%; }
.chsdc-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0 0 30px; font-size: 12px; line-height: 16px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: rgba(255, 255, 255, .72); }
.chsdc-crumbs a { display: inline-flex; align-items: center; gap: 6px; color: var(--on-dark) !important; transition: color .2s; }
.chsdc-crumbs a:hover { color: var(--gold-500) !important; }
.chsdc-crumbs .chsdc-ico { width: 14px; height: 14px; }
.chsdc-fhero__grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 32px; }
.chsdc-fhero__eyebrow { display: inline-flex; margin: 0 0 16px; padding: 6px 14px; border-radius: var(--radius-pill); background: var(--gold-500); color: var(--black); font-size: 12px; line-height: 16px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.chsdc-fhero__title { margin: 0; color: var(--on-dark); font-size: clamp(46px, 7.2vw, 100px); line-height: .92; font-weight: 800; letter-spacing: -.01em; text-transform: uppercase; text-wrap: balance; }
.chsdc-fhero__kicker { display: block; margin-bottom: .06em; font-size: .62em; font-weight: 200; font-style: italic; letter-spacing: 0; }
.chsdc-fhero__title strong { display: block; font-weight: 800; }
.chsdc-fhero__sub { margin: 16px 0 0; font-size: clamp(20px, 2.4vw, 30px); line-height: 1.2; font-weight: 300; font-style: italic; color: rgba(255, 255, 255, .92); }
.chsdc-fhero__facts { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; margin: 28px 0 0; padding: 0; list-style: none; font-size: 15px; line-height: 20px; font-weight: 600; }
.chsdc-fhero__facts li { display: inline-flex; align-items: center; gap: 8px; }
.chsdc-fhero__facts li:has(> [hidden]) { display: none; }
.chsdc-fhero__facts .chsdc-ico { color: var(--gold-500); }
.chsdc-fhero__facts .chsdc-price { color: var(--on-dark); }
.chsdc-fhero__facts .chsdc-price__off { color: rgba(255, 255, 255, .35); }
.chsdc-fhero__facts .chsdc-status { padding: 6px 13px; }
.chsdc-fhero__facts .chsdc-status--closed { background: rgba(248, 215, 218, .16); color: var(--closed-on-dark); }
.chsdc-fhero__facts .chsdc-status--open { background: var(--whatsapp); color: var(--whatsapp-ink); }
.chsdc-fhero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.chsdc-fhero__cta .chsdc-btn { min-height: 52px; padding: 0 26px; font-size: 15px; }
.chsdc-fhero__side { display: flex; flex-direction: column; align-items: flex-end; gap: 18px; }
.chsdc-fhero__logo { display: grid; place-items: center; width: 136px; height: 136px; padding: 10px; border-radius: 50%; background: var(--surface); box-shadow: 0 0 0 6px rgba(255, 255, 255, .16), 0 24px 48px -16px rgba(0, 0, 0, .6); }
.chsdc-fhero__logo img { width: 100%; height: 100%; border-radius: 50%; object-fit: contain; }
.chsdc-fhero__photos { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; border: 1px solid rgba(255, 255, 255, .35); border-radius: var(--radius-pill); background: rgba(0, 0, 0, .35); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); color: var(--on-dark); font-family: var(--font-body); font-size: 14px; font-weight: 800; cursor: pointer; transition: background .2s, transform .2s; }
.chsdc-fhero__photos:hover { background: rgba(0, 0, 0, .6); transform: translateY(-2px); }
.chsdc-fhero__photos:focus-visible, .chsdc-fgal__item:focus-visible, .chsdc-fcarta__tab:focus-visible, .chsdc-share__btn:focus-visible { outline: 3px solid var(--gold-500); outline-offset: 2px; }
.chsdc-fhero__down { position: absolute; left: 50%; bottom: 24px; width: 26px; height: 42px; margin-left: -13px; border: 2px solid rgba(255, 255, 255, .55); border-radius: 14px; }
.chsdc-fhero__down span { position: absolute; left: 50%; top: 8px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: var(--on-dark); animation: chsdc-scrollcue 1.8s ease-in-out infinite; }
@keyframes chsdc-scrollcue { 0% { opacity: 0; transform: translateY(0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateY(14px); } }
/* Entrada del hero */
@keyframes chsdc-rise { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
.chsdc-anim .chsdc-crumbs, .chsdc-anim .chsdc-fhero__text > *, .chsdc-anim .chsdc-fhero__side { animation: chsdc-rise .9s cubic-bezier(.2, .7, .2, 1) both; }
.chsdc-anim .chsdc-fhero__text > :nth-child(1) { animation-delay: .15s; }
.chsdc-anim .chsdc-fhero__text > :nth-child(2) { animation-delay: .25s; }
.chsdc-anim .chsdc-fhero__text > :nth-child(3) { animation-delay: .4s; }
.chsdc-anim .chsdc-fhero__text > :nth-child(4) { animation-delay: .52s; }
.chsdc-anim .chsdc-fhero__text > :nth-child(5) { animation-delay: .64s; }
.chsdc-anim .chsdc-fhero__side { animation-delay: .7s; }

/* ---------- Navegación de secciones (se fija bajo el header al bajar) ---------- */
.chsdc-fnav { position: relative; z-index: 20; background: rgba(255, 255, 255, .96); -webkit-backdrop-filter: saturate(1.4) blur(12px); backdrop-filter: saturate(1.4) blur(12px); border-bottom: 1px solid var(--line); transition: box-shadow .3s, transform .35s; }
.chsdc-fnav.is-stuck { position: fixed; left: 0; right: 0; top: var(--chsdc-sticky-top, 90px); box-shadow: 0 12px 30px -20px rgba(0, 0, 0, .45); }
.chsdc-fnav.is-past { transform: translateY(-130%); pointer-events: none; }
.chsdc-fnav__inner { display: flex; align-items: center; gap: 18px; max-width: 1140px; min-height: 64px; margin: 0 auto; padding: 0 var(--space-4); }
.chsdc-fnav__brand { display: flex; flex: none; align-items: center; gap: 10px; max-width: 0; overflow: hidden; opacity: 0; white-space: nowrap; font-size: 15px; font-weight: 800; color: var(--ink); transition: max-width .45s ease, opacity .3s; }
.chsdc-fnav.is-stuck .chsdc-fnav__brand { max-width: 280px; opacity: 1; }
.chsdc-fnav__brand img, .chsdc-fnav__brand b { flex: none; width: 34px; height: 34px; border-radius: 50%; object-fit: contain; background: var(--surface); box-shadow: 0 0 0 1px var(--line); }
.chsdc-fnav__brand b { display: grid; place-items: center; background: var(--accent, var(--green-700)); color: var(--on-accent, #fff); font-size: 12px; }
.chsdc-fnav__list { display: flex; flex: 1; gap: 2px; min-width: 0; margin: 0; padding: 0; list-style: none; overflow-x: auto; scrollbar-width: none; }
.chsdc-fnav__list::-webkit-scrollbar { display: none; }
.chsdc-fnav__list a { position: relative; display: flex; align-items: center; height: 64px; padding: 0 16px; color: var(--ink-muted) !important; font-size: 15px; font-weight: 700; white-space: nowrap; transition: color .2s; }
.chsdc-fnav__list a::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 0; height: 3px; border-radius: 3px 3px 0 0; background: var(--gold-500); transform: scaleX(0); transition: transform .35s cubic-bezier(.2, .7, .2, 1); }
.chsdc-fnav__list a:hover, .chsdc-fnav__list a.is-active { color: var(--ink) !important; }
.chsdc-fnav__list a.is-active::after { transform: scaleX(1); }
.chsdc-fnav__cta { flex: none; margin-left: auto; opacity: 0; transform: translateY(6px); pointer-events: none; transition: opacity .3s, transform .3s; }
.chsdc-fnav.is-stuck .chsdc-fnav__cta { opacity: 1; transform: none; pointer-events: auto; }

/* ---------- Secciones ---------- */
.chsdc-fsec { padding: 100px 0; scroll-margin-top: calc(var(--chsdc-sticky-top, 90px) + 70px); }
.chsdc-feyebrow { display: inline-block; margin-bottom: 12px; font-size: 13px; line-height: 16px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--green-700); }
.chsdc-ftitle { margin: 0 0 24px; font-size: clamp(32px, 4vw, 46px); line-height: 1.08; font-weight: 300; font-style: italic; color: var(--ink); text-wrap: balance; }
.chsdc-ftitle strong { font-weight: 800; font-style: normal; }
.chsdc-fsub { margin: 36px 0 14px; font-size: 13px; line-height: 16px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-muted); }
.chsdc-on-dark .chsdc-feyebrow { color: var(--gold-500); }
.chsdc-on-dark .chsdc-ftitle { color: var(--on-dark); }

/* ---------- Resumen ---------- */
.chsdc-fsum__grid { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 64px; align-items: start; }
.chsdc-fsum__desc p { margin: 0 0 16px; font-size: 19px; line-height: 32px; font-weight: 300; color: var(--ink); }
.chsdc-fsum__desc p:first-child::first-letter { float: left; margin: 6px 12px 0 0; font-size: 70px; line-height: .82; font-weight: 800; color: var(--accent, var(--green-700)); }
.chsdc-fsum .chsdc-services { gap: 10px; }
.chsdc-fsum .chsdc-service { padding: 8px 16px 8px 12px; font-size: 14px; }
.chsdc-fsum__ideal { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.chsdc-fsum__ideal a { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 0 16px 0 8px; border: 2px solid var(--green-500); border-radius: var(--radius-pill); color: var(--ink) !important; font-size: 14px; font-weight: 700; transition: background .2s, color .2s; }
.chsdc-fsum__ideal a .chsdc-ico { width: 28px; height: 28px; padding: 6px; border-radius: 50%; background: var(--green-050); color: var(--green-700); }
.chsdc-fsum__ideal a:hover { background: var(--green-700); border-color: var(--green-700); color: var(--on-green) !important; }
.chsdc-fsum__ideal a:hover .chsdc-ico { background: rgba(255, 255, 255, .18); color: var(--on-green); }
.chsdc-share { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 44px; padding-top: 24px; border-top: 1px solid var(--line); }
.chsdc-share__label { display: inline-flex; align-items: center; gap: 8px; margin-right: 6px; font-size: 13px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-muted); }
.chsdc-share__btn { display: inline-grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: var(--surface); color: var(--ink) !important; cursor: pointer; transition: background .2s, color .2s, border-color .2s, transform .2s; }
.chsdc-share__btn:hover { background: var(--green-700); border-color: var(--green-700); color: var(--on-green) !important; transform: translateY(-2px); }
.chsdc-share__ok { font-size: 13px; font-weight: 700; color: var(--green-700); }
/* Tarjeta de horarios y contacto */
.chsdc-finfo { position: sticky; top: calc(var(--chsdc-sticky-top, 90px) + 88px); padding: 28px; border: 1px solid var(--line); border-radius: 20px; background: var(--surface); box-shadow: 0 34px 60px -40px rgba(0, 0, 0, .4); }
.chsdc-finfo::before { content: ""; position: absolute; left: 28px; right: 28px; top: -1px; height: 4px; border-radius: 0 0 4px 4px; background: var(--accent, var(--gold-500)); }
.chsdc-finfo__now { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding-bottom: 20px; border-bottom: 1px dashed var(--line); }
.chsdc-finfo__now .chsdc-status { padding: 6px 14px; font-size: 13px; }
.chsdc-finfo__today { margin: 0; font-size: 14px; line-height: 20px; color: var(--ink-muted); }
.chsdc-finfo__today span { font-weight: 800; letter-spacing: .1em; text-transform: uppercase; font-size: 12px; }
.chsdc-finfo__today strong { display: block; margin-top: 2px; font-size: 26px; line-height: 32px; font-weight: 800; color: var(--ink); }
.chsdc-finfo__h { display: flex; align-items: center; gap: 8px; margin: 20px 0 4px; font-size: 12px; line-height: 16px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-muted); }
.chsdc-finfo__h .chsdc-ico { width: 16px; height: 16px; color: var(--green-700); }
.chsdc-finfo .chsdc-hours { font-size: 14px; }
.chsdc-finfo__list { display: grid; gap: 14px; margin: 16px 0 0; padding: 18px 0 0; border-top: 1px solid var(--line); list-style: none; font-size: 15px; line-height: 21px; }
.chsdc-finfo__list li { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 12px; }
.chsdc-finfo__list .chsdc-ico { color: var(--green-700); margin-top: 1px; }
.chsdc-finfo__list a { color: var(--ink) !important; }
.chsdc-finfo__list span > a:last-child:not(:first-child) { display: block; margin-top: 2px; color: var(--green-700) !important; font-size: 14px; font-weight: 700; }
.chsdc-finfo__list em { display: block; font-style: normal; font-size: 14px; color: var(--ink-muted); }
.chsdc-finfo__cta { display: grid; gap: 10px; margin-top: 22px; }
.chsdc-finfo__cta .chsdc-btn { width: 100%; min-height: 48px; }

/* ---------- Carta ---------- */
.chsdc-fcarta { background: var(--surface-alt); }
.chsdc-fcarta__box { max-width: 1000px; margin: 0 auto; padding: 8px 44px 36px; border-radius: 24px; background: var(--surface); box-shadow: 0 34px 70px -44px rgba(0, 0, 0, .35); }
.chsdc-fcarta__tabs { position: relative; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 0 -8px 12px; padding: 24px 8px; border-bottom: 1px solid var(--line); }
.chsdc-fcarta__tab { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; border: 0; border-radius: var(--radius-pill); background: transparent; color: var(--ink-muted); font-family: var(--font-body); font-size: 15px; font-weight: 800; cursor: pointer; white-space: nowrap; transition: color .3s; }
.chsdc-fcarta__tab span { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: var(--radius-pill); background: var(--surface-alt); color: var(--ink); font-size: 12px; transition: background .3s, color .3s; }
.chsdc-fcarta__tab:hover { color: var(--ink); }
.chsdc-fcarta__tab[aria-selected="true"] { color: var(--on-green); }
.chsdc-fcarta__tab[aria-selected="true"] span { background: rgba(255, 255, 255, .2); color: var(--on-green); }
.chsdc-fcarta__ink { position: absolute; z-index: 0; left: 0; top: 0; width: 0; height: 44px; border-radius: var(--radius-pill); background: var(--green-700); box-shadow: 0 10px 20px -12px rgba(63, 122, 61, .8); transition: transform .5s cubic-bezier(.3, 1.25, .5, 1), width .5s cubic-bezier(.3, 1.25, .5, 1); }
.chsdc-fcarta__panel.is-in { animation: chsdc-rise .5s cubic-bezier(.2, .7, .2, 1) both; }
.chsdc-fcarta__sec { margin: 28px 0 6px; text-align: center; font-size: 22px; line-height: 28px; font-weight: 800; color: var(--ink); }
.chsdc-fcarta__note { display: flex; justify-content: center; align-items: center; gap: 8px; margin: 10px 0 6px; font-size: 15px; font-style: italic; color: var(--ink-muted); }
.chsdc-fcarta__note .chsdc-ico { color: var(--green-700); }
.chsdc-fcarta__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 56px; margin: 0; padding: 0; list-style: none; }
.chsdc-fcarta__list:has(> :only-child) { grid-template-columns: minmax(0, 1fr); max-width: 560px; margin: 0 auto; }
.chsdc-dish { padding: 22px 0; border-bottom: 1px dashed var(--line); }
.chsdc-dish__top { display: flex; align-items: baseline; gap: 10px; }
.chsdc-dish__name { margin: 0; font-size: 18px; line-height: 24px; font-weight: 800; color: var(--ink); }
.chsdc-dish__dots { flex: 1; min-width: 18px; border-bottom: 2px dotted var(--line-strong); opacity: .45; transform: translateY(-5px); }
.chsdc-dish__price { font-size: 18px; line-height: 24px; font-weight: 800; color: var(--green-700); white-space: nowrap; }
.chsdc-dish__desc { margin: 6px 0 0; font-size: 15px; line-height: 22px; font-weight: 300; color: var(--ink-muted); }
.chsdc-dish__tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 0; }
.chsdc-dish__tag { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: var(--radius-pill); background: var(--green-050); color: var(--green-800); font-size: 12px; line-height: 18px; font-weight: 800; }
.chsdc-dish__tag .chsdc-ico { width: 13px; height: 13px; }
.chsdc-dish__tag--recomendado { background: var(--gold-100); color: var(--ink); }
.chsdc-dish__tag--picante { background: var(--closed-bg); color: var(--closed-ink); }
.chsdc-fcarta__chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 26px 0 8px; padding: 0; list-style: none; }
.chsdc-fcarta__chips li { display: inline-flex; align-items: center; gap: 10px; padding: 13px 22px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-alt); font-size: 17px; line-height: 22px; font-weight: 700; color: var(--ink); transition: transform .25s, box-shadow .25s, border-color .25s; }
.chsdc-fcarta__chips li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--gold-500); }
.chsdc-fcarta__chips li:hover { transform: translateY(-3px); border-color: var(--gold-500); box-shadow: 0 12px 24px -16px rgba(0, 0, 0, .35); }
.chsdc-fcarta__panel.is-in .chsdc-dish, .chsdc-fcarta__panel.is-in .chsdc-fcarta__chips li { animation: chsdc-rise .55s cubic-bezier(.2, .7, .2, 1) both; animation-delay: calc(var(--i, 0) * 55ms); }
/* Carta en PDF / digital / QR */
.chsdc-fcarta__file { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 16px 24px; max-width: 1000px; margin: 28px auto 0; padding: 22px 28px; border-radius: 20px; background: var(--dark-2); color: var(--on-dark); }
.chsdc-fcarta__file--solo { max-width: 780px; padding: 32px 36px; }
.chsdc-fcarta__fileico { position: relative; display: grid; place-items: center; width: 56px; height: 66px; border-radius: 10px 18px 10px 10px; background: var(--gold-500); color: var(--black); }
.chsdc-fcarta__fileico .chsdc-ico { width: 26px; height: 26px; }
.chsdc-fcarta__fileico b { position: absolute; right: -10px; bottom: -6px; padding: 2px 6px; border-radius: 4px; background: #c0392b; color: #fff; font-size: 10px; line-height: 14px; font-weight: 800; letter-spacing: .06em; }
.chsdc-fcarta__filetext strong { display: block; font-size: 20px; line-height: 26px; font-weight: 800; }
.chsdc-fcarta__filetext span { font-size: 14px; color: var(--on-dark-muted); }
.chsdc-fcarta__filebtns { display: flex; flex-wrap: wrap; gap: 10px; }
.chsdc-fcarta__file .chsdc-btn--outline { color: var(--on-dark) !important; border-color: var(--on-dark); }
.chsdc-fcarta__file .chsdc-btn--outline:hover { background: var(--on-dark); color: var(--black) !important; }
.chsdc-fcarta__qr { width: 92px; height: 92px; padding: 6px; border-radius: 10px; background: var(--surface); }
.chsdc-fcarta__legal { margin: 22px 0 0; text-align: center; font-size: 13px; line-height: 18px; color: var(--ink-muted); }

/* ---------- Fotos: mosaico + visor ---------- */
.chsdc-fgal__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 210px; gap: 12px; }
.chsdc-fgal__item { position: relative; overflow: hidden; padding: 0; border: 0; border-radius: 14px; background: var(--black); cursor: zoom-in; }
.chsdc-fgal__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s cubic-bezier(.2, .7, .2, 1), opacity .3s; }
.chsdc-fgal__item:hover img { transform: scale(1.07); opacity: .92; }
.chsdc-fgal__item:first-child { grid-column: span 2; grid-row: span 2; }
.chsdc-fgal__grid--n4 .chsdc-fgal__item:nth-child(2), .chsdc-fgal__grid--n3 .chsdc-fgal__item:not(:first-child) { grid-column: span 2; }
.chsdc-fgal__grid--n2 .chsdc-fgal__item { grid-column: span 2; grid-row: span 2; }
.chsdc-fgal__more { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(0, 0, 0, .55); color: var(--on-dark); font-size: 36px; font-weight: 800; }
.chsdc-lightbox { position: fixed; inset: 0; z-index: 1000001; display: grid; grid-template-columns: 80px minmax(0, 1fr) 80px; grid-template-rows: 70px minmax(0, 1fr) auto; background: rgba(8, 8, 8, .96); color: var(--on-dark); opacity: 0; transition: opacity .3s ease; }
.chsdc-lightbox[hidden] { display: none; }
.chsdc-lightbox.is-open { opacity: 1; }
.chsdc-lightbox__stage { grid-column: 2; grid-row: 2; display: grid; place-items: center; min-height: 0; margin: 0; }
.chsdc-lightbox__stage img { max-width: 100%; max-height: 100%; border-radius: 8px; object-fit: contain; transition: opacity .2s ease, transform .35s cubic-bezier(.2, .7, .2, 1); }
.chsdc-lightbox.is-changing .chsdc-lightbox__stage img { opacity: 0; transform: scale(.97); }
.chsdc-lightbox__close, .chsdc-lightbox__nav { display: grid; place-items: center; width: 52px; height: 52px; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .1); color: var(--on-dark); cursor: pointer; transition: background .2s; }
.chsdc-lightbox__close:hover, .chsdc-lightbox__nav:hover { background: rgba(255, 255, 255, .22); }
.chsdc-lightbox__close { grid-column: 3; grid-row: 1; align-self: center; justify-self: center; width: 46px; height: 46px; }
.chsdc-lightbox__nav { grid-row: 2; align-self: center; justify-self: center; }
.chsdc-lightbox__nav--prev { grid-column: 1; }
.chsdc-lightbox__nav--next { grid-column: 3; }
.chsdc-lightbox__count { grid-column: 2; grid-row: 1; align-self: center; margin: 0; text-align: center; font-size: 14px; font-weight: 800; letter-spacing: .1em; }
.chsdc-lightbox__thumbs { grid-column: 1 / -1; grid-row: 3; display: flex; justify-content: center; gap: 8px; padding: 14px 16px 18px; overflow-x: auto; scrollbar-width: none; }
.chsdc-lightbox__thumbs button { flex: none; width: 76px; height: 54px; padding: 0; border: 2px solid transparent; border-radius: 8px; overflow: hidden; background: none; opacity: .5; cursor: pointer; transition: opacity .2s, border-color .2s; }
.chsdc-lightbox__thumbs button[aria-current="true"] { border-color: var(--gold-500); opacity: 1; }
.chsdc-lightbox__thumbs img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Cómo llegar ---------- */
.chsdc-floc { background: var(--surface-alt); }
.chsdc-floc__grid { display: grid; grid-template-columns: 400px minmax(0, 1fr); gap: 28px; align-items: stretch; }
.chsdc-floc__card { display: flex; flex-direction: column; gap: 20px; padding: 30px; border: 1px solid var(--line); border-radius: 20px; background: var(--surface); }
.chsdc-floc__place { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 14px; align-items: center; margin: 0; font-size: 15px; line-height: 21px; color: var(--ink-muted); }
.chsdc-floc__place strong { display: block; font-size: 21px; line-height: 26px; font-weight: 800; color: var(--ink); }
.chsdc-floc__pin { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: var(--accent, var(--green-700)); color: var(--on-accent, #fff); }
.chsdc-floc__access { display: flex; gap: 10px; margin: 0; padding: 12px 14px; border-radius: 12px; background: var(--gold-100); font-size: 14px; line-height: 20px; color: var(--ink); }
.chsdc-floc__form { margin: 0; }
.chsdc-floc__form label { display: block; margin-bottom: 8px; font-size: 12px; line-height: 16px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-muted); }
.chsdc-floc__row { display: flex; gap: 8px; }
.chsdc-floc__row input { flex: 1; min-width: 0; min-height: 48px; margin: 0; padding: 0 18px; border: 2px solid var(--line); border-radius: var(--radius-pill); background: var(--surface); color: var(--ink); font-family: var(--font-body); font-size: 15px; box-shadow: none; transition: border-color .2s; }
.chsdc-floc__row input:focus { border-color: var(--green-500); outline: 0; }
.chsdc-floc__row .chsdc-btn { min-height: 48px; }
.chsdc-floc__apps { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.chsdc-floc__club { display: flex; gap: 8px; margin: auto 0 0; padding-top: 16px; border-top: 1px solid var(--line); font-size: 13px; line-height: 18px; color: var(--ink-muted); }
.chsdc-floc__club .chsdc-ico { width: 16px; height: 16px; }
.chsdc-floc__map { --chsdc-map-h: 560px; height: auto; min-height: 480px; }
.chsdc-floc__map .chsdc-map__canvas { min-height: 480px; }

/* ---------- Reserva ---------- */
.chsdc-fres { position: relative; padding: 120px 0; background: var(--black); color: var(--on-dark); }
.chsdc-fres.has-bg::before { background: linear-gradient(100deg, rgba(0, 0, 0, .9) 30%, rgba(0, 0, 0, .55) 100%); }
.chsdc-fres__grid { display: grid; grid-template-columns: minmax(0, 720px); }
.chsdc-fres--form .chsdc-fres__grid { grid-template-columns: minmax(0, 1fr) 440px; gap: 56px; align-items: center; }
.chsdc-fres .chsdc-lead { color: rgba(255, 255, 255, .88); }
.chsdc-fres__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.chsdc-fres__cta .chsdc-btn { min-height: 54px; padding: 0 28px; font-size: 15px; }
.chsdc-fres__form { padding: 30px; border-radius: 20px; background: var(--surface); color: var(--ink); }
.chsdc-fres__form h3 { margin: 0 0 16px; font-size: 20px; line-height: 26px; font-weight: 800; }
.chsdc-fres__form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]), .chsdc-fres__form select, .chsdc-fres__form textarea { width: 100%; min-height: 46px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 10px; font-family: var(--font-body); font-size: 15px; }
.chsdc-fres__form [type="submit"], .chsdc-fres__form button[type="submit"] { min-height: 48px; padding: 0 26px; border: 0; border-radius: var(--radius-pill); background: var(--green-700); color: var(--on-green); font-weight: 800; cursor: pointer; }

/* ---------- Barra de acciones (móvil) ---------- */
.chsdc-fbar { display: none; }

@media (max-width: 1000px) {
  .chsdc-fsum__grid { grid-template-columns: minmax(0, 1fr); gap: 44px; }
  .chsdc-finfo { position: relative; top: 0; }
  .chsdc-floc__grid { grid-template-columns: minmax(0, 1fr); }
  .chsdc-fres--form .chsdc-fres__grid { grid-template-columns: minmax(0, 1fr); }
  .chsdc-fcarta__list { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .chsdc-fhero { min-height: 92svh; padding: 118px 0 72px; }
  .chsdc-fhero__grid { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .chsdc-fhero__side { order: -1; flex-direction: row; align-items: center; justify-content: space-between; }
  .chsdc-fhero__logo { width: 78px; height: 78px; padding: 6px; box-shadow: 0 0 0 4px rgba(255, 255, 255, .16); }
  .chsdc-crumbs { margin-bottom: 18px; }
  .chsdc-fhero__facts { gap: 10px 16px; font-size: 14px; }
  .chsdc-fhero__cta .chsdc-btn { flex: 1 1 auto; min-height: 50px; padding: 0 18px; }
  .chsdc-fhero__down { display: none; }
  .chsdc-fnav__inner { gap: 8px; min-height: 54px; }
  .chsdc-fnav__list a { height: 54px; padding: 0 12px; font-size: 14px; }
  .chsdc-fnav__cta, .chsdc-fnav__brand { display: none; }
  .chsdc-fsec { padding: 68px 0; }
  .chsdc-fsum__desc p { font-size: 17px; line-height: 29px; }
  .chsdc-finfo { padding: 22px; }
  .chsdc-fcarta__box { padding: 4px 18px 22px; border-radius: 18px; }
  .chsdc-fcarta__tabs { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; scrollbar-width: none; padding: 18px 8px; }
  .chsdc-fcarta__tabs::-webkit-scrollbar { display: none; }
  .chsdc-fcarta__file { grid-template-columns: auto minmax(0, 1fr); padding: 22px; }
  .chsdc-fcarta__filebtns { grid-column: 1 / -1; }
  .chsdc-fcarta__filebtns .chsdc-btn { flex: 1 1 auto; }
  .chsdc-fcarta__qr { display: none; }
  .chsdc-fgal__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 140px; gap: 8px; }
  .chsdc-lightbox { grid-template-columns: 0 minmax(0, 1fr) 0; grid-template-rows: 60px minmax(0, 1fr) auto; }
  .chsdc-lightbox__close { grid-column: 2; justify-self: end; margin-right: 10px; }
  .chsdc-lightbox__nav { position: absolute; top: 50%; margin-top: -26px; background: rgba(0, 0, 0, .5); }
  .chsdc-lightbox__nav--prev { left: 8px; }
  .chsdc-lightbox__nav--next { right: 8px; }
  .chsdc-floc__card { padding: 22px; }
  .chsdc-floc__row { flex-direction: column; }
  .chsdc-floc__map, .chsdc-floc__map .chsdc-map__canvas { min-height: 360px; }
  .chsdc-fres { padding: 84px 0; }
  .chsdc-fres__cta .chsdc-btn { flex: 1 1 auto; }
  .chsdc-fbar { position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom, 0px)); z-index: 30; display: flex; align-items: stretch; gap: 4px; padding: 6px; border-radius: 20px; background: rgba(20, 20, 20, .94); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 18px 40px -12px rgba(0, 0, 0, .55); transform: translateY(160%); transition: transform .45s cubic-bezier(.2, .8, .2, 1); }
  .chsdc-fbar.is-visible { transform: none; }
  .chsdc-fbar a { display: flex; flex: 1; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-height: 52px; border-radius: 14px; color: var(--on-dark) !important; font-size: 11px; line-height: 14px; font-weight: 800; }
  .chsdc-fbar a .chsdc-ico { width: 20px; height: 20px; }
  .chsdc-fbar .chsdc-fbar__main { flex: 1.9; flex-direction: row; gap: 8px; font-size: 15px; background: var(--green-700); }
  .chsdc-fbar .chsdc-fbar__main.is-wa { background: var(--whatsapp); color: var(--whatsapp-ink) !important; }
}

@media (prefers-reduced-motion: reduce) {
  .chsdc *, .chsdc *::before, .chsdc *::after, .chsdc-panel, .chsdc-panel *, .chsdc-panel-veil { transition: none !important; animation: none !important; }
  .chsdc-anim .chsdc-reveal, .chsdc-anim .chsdc-head > *, .chsdc-anim .chsdc-stats li, .chsdc-anim .chsdc-filters .chsdc-chip,
  .chsdc-anim .chsdc-card .chsdc-card__row, .chsdc-anim .chsdc-card .chsdc-card__heading, .chsdc-anim .chsdc-map .chsdc-legend li,
  .chsdc-anim .chsdc-panel--inline .chsdc-panel__body > * { opacity: 1 !important; transform: none !important; }
  .chsdc-anim .chsdc-card .chsdc-card__hero { clip-path: none !important; }
  .chsdc-anim .chsdc-head h2::after { transform: none !important; }
  .chsdc-parallax__bg, .chsdc-card__photo[data-parallax] { transform: none !important; }
}
@media (prefers-reduced-motion: reduce) {
  .chsdc-anim .chsdc-crumbs, .chsdc-anim .chsdc-fhero__text > *, .chsdc-anim .chsdc-fhero__side, .chsdc-anim .chsdc-fhero__media img,
  .chsdc-fcarta__panel.is-in, .chsdc-fcarta__panel.is-in .chsdc-dish, .chsdc-fcarta__panel.is-in .chsdc-fcarta__chips li { animation: none !important; opacity: 1 !important; transform: none !important; }
  .chsdc-fhero__media { transform: none !important; }
}
