/* Film in Cali — Locaciones
   Colores y fuentes en variables: se pueden sobrescribir desde Elementor (Sitio > CSS personalizado). */
:root {
	--fcl-purple: #8a3cf0;
	--fcl-purple-dk: #5b1fb0;
	--fcl-yellow: #ffe600;
	--fcl-pink: #ff8fff;
	--fcl-coral: #ff4f5e;
	--fcl-plum: #7a3f8f;
	--fcl-lilac: #f5eeff;
	--fcl-ink: #24123b;
	--fcl-muted: #6b5a80;
	--fcl-line: #e6dbf5;
	--fcl-font-title: "Ministry", "Montserrat", system-ui, sans-serif;
	--fcl-font-body: "Montserrat", system-ui, sans-serif;
	--fcl-gutter: clamp(16px, 7.3vw, 140px);
	--fcl-sticky-top: 0px; /* alto del header fijo del sitio, si lo hay */
}

.fcl-catalog *, .fcl-ficha * { box-sizing: border-box; }
.fcl-catalog img, .fcl-ficha img { max-width: 100%; }
.fcl-ico { width: 1em; height: 1em; flex: none; }
.fcl-link { background: none; border: 0; padding: 0; font: inherit; color: var(--fcl-purple); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

/* =========================================================
   GENERAL: filtros + collage
   ========================================================= */
.fcl-catalog { font-family: var(--fcl-font-body); color: var(--fcl-ink); width: min(100%, 1240px); margin-inline: auto; }

.fcl-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 28px; }
.fcl-select { position: relative; flex: 1 1 180px; max-width: 260px; }
.fcl-select::after { content: ""; position: absolute; right: 16px; top: 50%; width: 8px; height: 8px; border: solid var(--fcl-purple); border-width: 0 2px 2px 0; transform: translateY(-70%) rotate(45deg); pointer-events: none; }
.fcl-select select {
	appearance: none; -webkit-appearance: none; width: 100%; height: 48px; padding: 0 40px 0 18px;
	border: 2px solid var(--fcl-purple); border-radius: 999px; background: #fff; color: var(--fcl-purple);
	font: 600 15px/1 var(--fcl-font-body); cursor: pointer; transition: background .2s, color .2s;
}
.fcl-select select:focus-visible { outline: 3px solid var(--fcl-yellow); outline-offset: 2px; }
.fcl-select.is-active select { background: var(--fcl-purple); color: #fff; }
.fcl-select.is-active::after { border-color: var(--fcl-yellow); }
.fcl-select select option { color: var(--fcl-ink); background: #fff; }
.fcl-select select option:disabled { color: #bbb; }
.fcl-filters__reset { height: 48px; padding: 0 20px; border: 0; border-radius: 999px; background: var(--fcl-yellow); color: var(--fcl-purple-dk); font: 700 14px/1 var(--fcl-font-body); cursor: pointer; }
.fcl-filters__count { margin: 0 0 0 auto; font: 600 14px/1.2 var(--fcl-font-body); color: var(--fcl-ink); background: #ffffffcc; padding: 8px 14px; border-radius: 999px; }

.fcl-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--fcl-gap, 10px); grid-auto-rows: var(--fcl-row, clamp(56px, 7vw, 112px)); }
.fcl-grid > [hidden], .fcl-collage > [hidden] { display: none !important; }

/* Collage: tamaños asignados por JS (--c columnas, --r filas). Aplica a la grilla del plugin y a un Loop Grid de Elementor. */
@media (min-width: 768px) {
	.fcl-collage { grid-auto-flow: dense; grid-auto-rows: var(--fcl-row, clamp(56px, 7vw, 112px)); }
	.fcl-collage > * { grid-column: span var(--c, 1); grid-row: span var(--r, 2); min-height: 0; }
	.fcl-collage > .e-loop-item > .e-con, .fcl-collage > .e-loop-item > .e-con > .e-con-inner { height: 100%; min-height: 0; }
}
.fcl-collage .elementor-widget-fcl-tarjeta, .fcl-collage .elementor-widget-fcl-tarjeta > .elementor-widget-container { height: 100%; }
.elementor-widget-fcl-tarjeta .fcl-card { height: 100%; }

.fcl-card { position: relative; display: block; min-height: var(--fcl-card-h, 0px); overflow: hidden; background: var(--fcl-plum); text-decoration: none; isolation: isolate; }
.fcl-card .fcl-card__img, .elementor .fcl-card img.fcl-card__img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: filter .45s ease, transform .6s ease; }
.fcl-card__img--empty { background: repeating-linear-gradient(135deg, var(--fcl-purple) 0 14px, var(--fcl-plum) 14px 28px); }
.fcl-card__label {
	position: absolute; left: 14px; bottom: 14px; width: fit-content; max-width: calc(100% - 28px);
	padding: 7px 10px; background: var(--fcl-purple); color: #fff;
	font: 600 clamp(13px, 1vw, 17px)/1.2 var(--fcl-font-title); letter-spacing: .01em;
	transition: opacity .3s, transform .3s;
}
.fcl-card:focus-visible { outline: 4px solid var(--fcl-yellow); outline-offset: 2px; }
/* Modificadores: blanco y negro, etiqueta en hover, zoom */
.fcl-card--bw .fcl-card__img:not(.fcl-card__img--empty), .fcl-grid--bw .fcl-card__img:not(.fcl-card__img--empty) { filter: grayscale(1) contrast(1.05); }
.fcl-card--bw:hover .fcl-card__img, .fcl-card--bw:focus-visible .fcl-card__img,
.fcl-grid--bw .fcl-card:hover .fcl-card__img, .fcl-grid--bw .fcl-card:focus-visible .fcl-card__img { filter: none; }
.fcl-card--zoom:hover .fcl-card__img, .fcl-grid .fcl-card:hover .fcl-card__img { transform: scale(1.04); }
@media (hover: hover) {
	.fcl-card--hoverlabel .fcl-card__label, .fcl-grid--hoverlabel .fcl-card__label { opacity: 0; transform: translateY(8px); }
	.fcl-card--hoverlabel:hover .fcl-card__label, .fcl-card--hoverlabel:focus-visible .fcl-card__label,
	.fcl-grid--hoverlabel .fcl-card:hover .fcl-card__label, .fcl-grid--hoverlabel .fcl-card:focus-visible .fcl-card__label { opacity: 1; transform: none; }
}
.is-filtering > * { animation: fcl-in .35s ease both; }
@keyframes fcl-in { from { opacity: 0; transform: scale(.97); } }
.fcl-empty { text-align: center; padding: 48px 16px; font-size: 17px; background: #ffffffd9; border-radius: 12px; }

@media (max-width: 900px) {
	.fcl-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.fcl-filters { gap: 8px; }
	.fcl-select { flex: 1 1 calc(50% - 4px); max-width: none; }
	.fcl-select select { height: 44px; font-size: 14px; padding-left: 14px; }
	.fcl-filters__count { margin: 4px 0 0; }
	.fcl-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 26vw; gap: 8px; }
	.fcl-grid > * { grid-row: span 2; }
	.fcl-card__label { left: 8px; bottom: 8px; font-size: 12px; padding: 5px 7px; }
}
@media (prefers-reduced-motion: reduce) {
	.fcl-card__img, .fcl-card__label, .fcl-hero__img { transition: none !important; }
	.is-filtering > * { animation: none !important; }
}

/* =========================================================
   INTERNA
   ========================================================= */
.fcl-ficha { font-family: var(--fcl-font-body); color: var(--fcl-ink); background: #fff; }
.fcl-wrap { width: 100%; max-width: 1640px; margin-inline: auto; padding-inline: var(--fcl-gutter); }
.fcl-h2 { font: 700 clamp(30px, 3vw, 54px)/1 var(--fcl-font-title); color: var(--fcl-purple); margin: 0 0 clamp(24px, 3vw, 48px); letter-spacing: -.01em; }
.fcl-h3 { font: 500 clamp(18px, 1.3vw, 22px)/1.2 var(--fcl-font-title); color: var(--fcl-purple); margin: 0 0 16px; text-transform: uppercase; letter-spacing: .04em; }

/* ---- Hero ---- */
.fcl-hero { position: relative; height: clamp(620px, 56.25vw, calc(100svh - var(--fcl-sticky-top))); overflow: hidden; background: var(--fcl-plum); color: #fff; }
.fcl-hero__slides { position: absolute; inset: 0; }
.fcl-hero .fcl-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; opacity: 0; transition: opacity .8s ease; }
.fcl-hero__img.is-active { opacity: 1; }
.fcl-hero--nophoto .fcl-hero__slides { background: repeating-linear-gradient(135deg, var(--fcl-plum) 0 40px, #6c3580 40px 80px); }
.fcl-hero__panel {
	position: absolute; top: 0; bottom: 0; left: var(--fcl-gutter); width: clamp(380px, 26.8vw, 560px);
	background: var(--fcl-purple); padding: clamp(48px, 6.8vw, 130px) clamp(28px, 3vw, 58px) clamp(32px, 3vw, 56px);
	overflow-y: auto; scrollbar-width: thin; scrollbar-color: #ffffff55 transparent;
	display: flex; flex-direction: column;
}
.fcl-eyebrow { margin: 0 0 14px; font: 600 13px/1.3 var(--fcl-font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--fcl-pink); }
.fcl-hero__title { margin: 0 0 clamp(28px, 4.5vw, 90px); font: 700 clamp(40px, 4vw, 86px)/.92 var(--fcl-font-title); color: var(--fcl-yellow); letter-spacing: -.01em; }
.fcl-hero__desc { font-size: clamp(15px, 1.05vw, 20px); line-height: 1.3; }
.fcl-hero__desc p { margin: 0 0 1.1em; }
.fcl-hero__addr { font-style: normal; font-size: clamp(15px, 1.05vw, 20px); line-height: 1.3; margin-top: clamp(16px, 2vw, 36px); display: flex; flex-direction: column; }
.fcl-hero__map { display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; color: #fff; text-decoration: underline; text-underline-offset: 3px; width: fit-content; }
.fcl-hero__map:hover { color: var(--fcl-yellow); }
.fcl-hero__tel { display: inline-flex; align-items: center; gap: 8px; margin-top: 22px; color: var(--fcl-yellow); font-size: clamp(16px, 1.05vw, 20px); text-decoration: none; width: fit-content; }
.fcl-hero__tel .fcl-ico { font-size: 1.4em; }
.fcl-hero__nav { position: absolute; right: clamp(16px, 2.9vw, 56px); bottom: clamp(16px, 2.1vw, 40px); display: flex; align-items: center; gap: clamp(12px, 2.2vw, 42px); }
.fcl-hero__count { font: 600 15px/1 var(--fcl-font-body); text-shadow: 0 1px 6px #0008; margin-right: 6px; letter-spacing: .06em; }
.fcl-round { width: clamp(52px, 4.15vw, 80px); height: clamp(52px, 4.15vw, 80px); border-radius: 50%; border: 0; background: var(--fcl-pink); color: var(--fcl-purple); display: grid; place-items: center; cursor: pointer; font-size: clamp(22px, 1.8vw, 34px); transition: transform .2s, background .2s; padding: 0; }
.fcl-round:hover { transform: scale(1.06); background: var(--fcl-yellow); }
.fcl-round:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }

/* ---- Datos rápidos ---- */
.fcl-facts { background: var(--fcl-yellow); color: var(--fcl-purple-dk); }
.fcl-facts dl { margin: 0; display: flex; flex-wrap: wrap; padding: 22px var(--fcl-gutter); gap: 14px 0; max-width: 1640px; margin-inline: auto; }
.fcl-facts dl > div { padding: 0 clamp(16px, 2.4vw, 44px); border-left: 2px solid #5b1fb033; }
.fcl-facts dl > div:first-child { padding-left: 0; border-left: 0; }
.fcl-facts dt { font: 600 11px/1.2 var(--fcl-font-body); letter-spacing: .14em; text-transform: uppercase; opacity: .8; margin-bottom: 4px; }
.fcl-facts dd { margin: 0; font: 700 clamp(16px, 1.2vw, 21px)/1.2 var(--fcl-font-title); }

/* ---- Subnav ---- */
.fcl-subnav { position: sticky; top: var(--fcl-sticky-top); z-index: 20; background: #fff; border-bottom: 1px solid var(--fcl-line); }
.fcl-subnav ul { list-style: none; margin: 0 auto; max-width: 1640px; padding: 0 var(--fcl-gutter); display: flex; gap: clamp(18px, 3vw, 48px); overflow-x: auto; scrollbar-width: none; }
.fcl-subnav ul::-webkit-scrollbar { display: none; }
.fcl-subnav a { display: block; padding: 18px 0 15px; white-space: nowrap; color: var(--fcl-muted); font: 600 14px/1 var(--fcl-font-body); letter-spacing: .06em; text-transform: uppercase; text-decoration: none; border-bottom: 3px solid transparent; }
.fcl-subnav a:hover, .fcl-subnav a.is-active { color: var(--fcl-purple); border-bottom-color: var(--fcl-purple); }

/* ---- Secciones ---- */
.fcl-sec { padding: clamp(56px, 6vw, 112px) 0; scroll-margin-top: calc(var(--fcl-sticky-top) + 56px); }
.fcl-sec:nth-of-type(even) { background: var(--fcl-lilac); }
.fcl-prose { font-size: clamp(16px, 1.1vw, 19px); line-height: 1.7; max-width: 72ch; }
.fcl-prose p { margin: 0 0 1.2em; }
.fcl-prose p:first-child { font: 500 clamp(19px, 1.45vw, 26px)/1.45 var(--fcl-font-title); color: var(--fcl-purple-dk); }

.fcl-cine { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(32px, 5vw, 96px); align-items: start; }
.fcl-cine__aside { background: #fff; border-radius: 4px; padding: clamp(24px, 2.4vw, 40px); border-top: 6px solid var(--fcl-yellow); position: sticky; top: calc(var(--fcl-sticky-top) + 80px); }
.fcl-sec:nth-of-type(odd) .fcl-cine__aside { background: var(--fcl-lilac); }
.fcl-refs { list-style: none; margin: 0 0 28px; padding: 0; }
.fcl-refs li { position: relative; padding: 10px 0 10px 22px; border-bottom: 1px solid var(--fcl-line); line-height: 1.4; }
.fcl-refs li::before { content: ""; position: absolute; left: 2px; top: 16px; width: 9px; height: 9px; background: var(--fcl-coral); transform: rotate(45deg); }
.fcl-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.fcl-chips li { padding: 7px 14px; border-radius: 999px; background: var(--fcl-pink); color: var(--fcl-purple-dk); font-weight: 600; font-size: 14px; }

/* Logística */
.fcl-log { display: grid; gap: clamp(40px, 4vw, 64px); }
.fcl-svcs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.fcl-svc { display: flex; gap: 14px; align-items: flex-start; background: #fff; padding: 16px 18px; border-radius: 4px; border: 1px solid var(--fcl-line); }
.fcl-svc__ico { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; flex: none; font-size: 18px; }
.fcl-svc.is-yes .fcl-svc__ico { background: var(--fcl-purple); color: var(--fcl-yellow); }
.fcl-svc.is-no .fcl-svc__ico { background: #ece6f3; color: #9a8daa; }
.fcl-svc.is-no strong { color: var(--fcl-muted); }
.fcl-svc__txt { display: flex; flex-direction: column; gap: 4px; padding-top: 6px; }
.fcl-svc__txt strong { font: 700 16px/1.2 var(--fcl-font-body); }
.fcl-svc__txt span { font-size: 14px; line-height: 1.45; color: var(--fcl-muted); }
.fcl-log__cols { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: clamp(32px, 5vw, 96px); }
.fcl-rows { margin: 0; }
.fcl-rows > div { display: grid; grid-template-columns: minmax(130px, 1fr) minmax(0, 2.4fr); gap: 20px; padding: 16px 0; border-top: 1px solid var(--fcl-line); }
.fcl-rows dt { font: 600 12px/1.4 var(--fcl-font-body); letter-spacing: .1em; text-transform: uppercase; color: var(--fcl-purple); padding-top: 3px; }
.fcl-rows dd { margin: 0; line-height: 1.55; }
.fcl-near > div { margin-bottom: 24px; }
.fcl-near h4 { margin: 0 0 8px; font: 600 12px/1.4 var(--fcl-font-body); letter-spacing: .1em; text-transform: uppercase; color: var(--fcl-purple); }
.fcl-near ul { list-style: none; margin: 0; padding: 0; }
.fcl-near li { padding: 10px 0; border-top: 1px solid var(--fcl-line); font-weight: 600; }

/* Galería */
.fcl-gallery { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.fcl-gallery li:first-child { grid-column: span 2; grid-row: span 2; }
.fcl-gallery a { display: block; height: 100%; aspect-ratio: 4 / 3; overflow: hidden; }
.fcl-gallery li:first-child a { aspect-ratio: auto; }
.fcl-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s; }
.fcl-gallery a:hover img { transform: scale(1.04); }

/* Lightbox */
.fcl-lb { position: fixed; inset: 0; z-index: 99999; background: #1a0b2ef2; display: grid; place-items: center; padding: 64px 16px; }
.fcl-lb[hidden] { display: none; }
.fcl-lb img { max-width: 100%; max-height: 100%; object-fit: contain; }
.fcl-lb .fcl-round { position: absolute; top: 50%; transform: translateY(-50%); }
.fcl-lb [data-lb-prev] { left: 16px; } .fcl-lb [data-lb-next] { right: 16px; }
.fcl-lb [data-lb-close] { position: absolute; top: 14px; right: 16px; background: none; border: 0; color: #fff; font-size: 40px; line-height: 1; cursor: pointer; }
.fcl-lb__count { position: absolute; bottom: 20px; left: 0; right: 0; text-align: center; color: #fff; font-weight: 600; }

/* Contacto */
.fcl-contact { position: relative; overflow: hidden; background: var(--fcl-purple); color: #fff; padding: clamp(56px, 6vw, 104px) 0; scroll-margin-top: calc(var(--fcl-sticky-top) + 56px); }
.fcl-contact::before, .fcl-contact::after { content: ""; position: absolute; width: 340px; height: 340px; right: -120px; top: 50%; transform: translateY(-50%) rotate(45deg); background: var(--fcl-coral); }
.fcl-contact::after { width: 170px; height: 170px; right: -40px; background: var(--fcl-plum); }
.fcl-contact__in { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 48px; align-items: end; padding-right: max(var(--fcl-gutter), 240px); }
.fcl-contact .fcl-h2 { color: var(--fcl-yellow); margin-bottom: 16px; }
.fcl-contact__who { margin: 0; font-size: 17px; line-height: 1.5; opacity: .95; }
.fcl-contact__who strong { font: 700 22px/1.3 var(--fcl-font-title); }
.fcl-contact__links { display: flex; flex-wrap: wrap; gap: 10px; }
.fcl-contact__links a { display: inline-flex; align-items: center; gap: 8px; padding: 14px 22px; border-radius: 999px; background: var(--fcl-yellow); color: var(--fcl-purple-dk); font-weight: 700; text-decoration: none; transition: transform .2s; }
.fcl-contact__links a:hover { transform: translateY(-2px); }
.fcl-contact__meta { grid-column: 1 / -1; margin: 16px 0 0; font-size: 13px; opacity: .75; }
.fcl-pending p { font-size: 18px; color: var(--fcl-muted); margin: 0; }

/* Relacionadas */
.fcl-related__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.fcl-related__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.fcl-related__grid .fcl-card { aspect-ratio: 3 / 4; }

@media (max-width: 1024px) {
	.fcl-cine, .fcl-log__cols { grid-template-columns: minmax(0, 1fr); }
	.fcl-cine__aside { position: static; }
	.fcl-related__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fcl-contact__in { grid-template-columns: minmax(0, 1fr); padding-right: var(--fcl-gutter); }
	.fcl-contact::before, .fcl-contact::after { opacity: .35; }
}
@media (max-width: 760px) {
	.fcl-hero { height: auto; display: flex; flex-direction: column; }
	.fcl-hero__slides { position: relative; height: 62vw; min-height: 260px; }
	.fcl-hero__panel { position: static; width: auto; padding: 32px 16px 36px; overflow: visible; }
	.fcl-hero__title { margin-bottom: 24px; }
	.fcl-hero__nav { top: calc(max(62vw, 260px) - 64px); bottom: auto; right: 12px; gap: 10px; }
	.fcl-round { width: 48px; height: 48px; font-size: 20px; }
	.fcl-facts dl { padding: 18px 16px; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
	.fcl-facts dl > div { padding: 0; border: 0; }
	.fcl-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fcl-rows > div { grid-template-columns: minmax(0, 1fr); gap: 4px; }
	.fcl-svcs { grid-template-columns: minmax(0, 1fr); }
	.fcl-lb .fcl-round { top: auto; bottom: 12px; transform: none; }
}

/* =========================================================
   WIDGETS DE ELEMENTOR
   ========================================================= */
.fcl-round { width: var(--fcl-round, clamp(52px, 4.15vw, 80px)); height: var(--fcl-round, clamp(52px, 4.15vw, 80px)); }

/* Slider */
.fcl-slider { position: relative; height: 70vh; overflow: hidden; background: var(--fcl-plum); }
.fcl-slider::after { content: ""; position: absolute; inset: 0; pointer-events: none; }
.fcl-slider .fcl-slider__img, .elementor .fcl-slider img.fcl-slider__img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; opacity: 0; transition: opacity .8s ease; }
.fcl-slider__img.is-active { opacity: 1; }
.fcl-slider .fcl-slider__nav { position: absolute; z-index: 2; color: #fff; }
.fcl-slider--empty { background: repeating-linear-gradient(135deg, var(--fcl-plum) 0 40px, #6c3580 40px 80px); }
/* Modo fondo: llena el contenedor padre y queda detrás */
.elementor-widget-fcl-slider.fcl-slider-fondo-yes { position: absolute !important; inset: 0; width: 100% !important; max-width: none !important; height: 100%; margin: 0 !important; z-index: 0; }
.elementor-widget-fcl-slider.fcl-slider-fondo-yes > .elementor-widget-container, .fcl-slider-fondo-yes .fcl-slider { height: 100% !important; }
.e-con:has(> .fcl-slider-fondo-yes), .e-con-inner:has(> .fcl-slider-fondo-yes) { position: relative; }
.e-con:has(> .fcl-slider-fondo-yes) > :not(.fcl-slider-fondo-yes), .e-con-inner:has(> .fcl-slider-fondo-yes) > :not(.fcl-slider-fondo-yes) { position: relative; z-index: 1; }
@media (max-width: 767px) {
	.elementor-widget-fcl-slider.fcl-slider-fondo-yes { position: relative !important; height: 62vw; min-height: 260px; }
}

/* Datos */
.fcl-datos { margin: 0; --fcl-datos-gap: 32px; --fcl-datos-line: currentColor; }
.fcl-datos dt { font: 600 11px/1.3 var(--fcl-font-body); letter-spacing: .14em; text-transform: uppercase; opacity: .85; margin: 0 0 4px; }
.fcl-datos dd { margin: 0; font: 700 clamp(16px, 1.2vw, 21px)/1.3 var(--fcl-font-title); }
.fcl-datos--franja { display: flex; flex-wrap: wrap; row-gap: 14px; }
.fcl-datos--franja > div { padding: 0 var(--fcl-datos-gap); border-left: 2px solid color-mix(in srgb, var(--fcl-datos-line) 25%, transparent); }
.fcl-datos--franja > div:first-child { padding-left: 0; border-left: 0; }
.fcl-datos--filas > div { display: grid; grid-template-columns: var(--fcl-datos-lw, 30%) minmax(0, 1fr); gap: 20px; padding: calc(var(--fcl-datos-gap) / 2) 0; border-top: 1px solid color-mix(in srgb, var(--fcl-datos-line) 20%, transparent); }
.fcl-datos--filas dd { font: 400 16px/1.55 var(--fcl-font-body); }
.fcl-datos--apilado { display: grid; gap: var(--fcl-datos-gap); }
@media (max-width: 767px) {
	.fcl-datos--franja { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
	.fcl-datos--franja > div { padding: 0; border: 0; }
	.fcl-datos--filas > div { grid-template-columns: minmax(0, 1fr); gap: 4px; }
}

/* Lista */
.fcl-lista { list-style: none; margin: 0; padding: 0; --fcl-lista-gap: 8px; }
.fcl-lista--lista li { position: relative; padding: 10px 0 10px 22px; border-bottom: 1px solid var(--fcl-line); line-height: 1.4; }
.fcl-lista--lista li::before { content: ""; position: absolute; left: 2px; top: 16px; width: 9px; height: 9px; background: var(--fcl-coral); transform: rotate(45deg); }
.fcl-lista--chips, .fcl-lista--linea { display: flex; flex-wrap: wrap; gap: var(--fcl-lista-gap); }
.fcl-lista--chips li { padding: 7px 14px; border-radius: 999px; background: var(--fcl-pink); color: var(--fcl-purple-dk); font-weight: 600; font-size: 14px; }
.fcl-lista__sep { opacity: .6; }

/* Servicios */
.fcl-svcs { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fcl-svc__ico { width: var(--fcl-ico-box, 34px); height: var(--fcl-ico-box, 34px); }
@media (max-width: 1024px) { .fcl-svcs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .fcl-svcs { grid-template-columns: minmax(0, 1fr); } }
.fcl-ficha .fcl-svcs { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }

/* Servicios — estilo lista (tipo Airbnb) */
.fcl-amen { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 24px; column-gap: 56px; --fcl-amen-ico: 26px; font-family: var(--fcl-font-body); }
.fcl-amen li { display: flex; align-items: flex-start; gap: 16px; color: var(--fcl-ink); }
.fcl-amen__ico { flex: none; width: var(--fcl-amen-ico); height: var(--fcl-amen-ico); font-size: var(--fcl-amen-ico); line-height: 1; color: var(--fcl-ink); display: grid; place-items: center; position: relative; }
.fcl-amen__ico svg, .fcl-amen__ico .fcl-li-ico { width: 100%; height: 100%; }
.fcl-amen__ico svg:not(.fcl-li-ico) { fill: currentColor; }
.fcl-amen__off { position: relative; display: grid; place-items: center; width: 100%; height: 100%; }
.fcl-amen__off::after { content: ""; position: absolute; left: 50%; top: -8%; width: 1.6px; height: 116%; background: currentColor; transform: rotate(-45deg); }
.fcl-amen__txt { display: flex; flex-direction: column; gap: 3px; min-width: 0; padding-top: 1px; }
.fcl-amen__name { font-size: 17px; line-height: 1.4; }
.fcl-amen__det { font-size: 14px; line-height: 1.5; color: var(--fcl-muted); }
.fcl-amen li.is-no { color: #9a91a6; }
.fcl-amen li.is-no .fcl-amen__ico { color: inherit; }
.fcl-amen li.is-no .fcl-amen__name { text-decoration: line-through; }
.fcl-amen--full { grid-template-columns: minmax(0, 1fr) !important; row-gap: 0; }
.fcl-amen--full li { padding: 20px 0; border-bottom: 1px solid var(--fcl-line); }
.fcl-amen--full li:last-child { border-bottom: 0; }
@media (max-width: 767px) { .fcl-amen { grid-template-columns: minmax(0, 1fr); row-gap: 18px; } }

button.fcl-amen-btn { display: inline-block; margin-top: 36px; padding: 14px 24px; border: 1px solid var(--fcl-ink); border-radius: 8px; background: #fff; color: var(--fcl-ink); font: 600 16px/1.2 var(--fcl-font-body); cursor: pointer; transition: background .2s; }
button.fcl-amen-btn:hover, button.fcl-amen-btn:focus { background: var(--fcl-lilac); color: var(--fcl-ink); }
button.fcl-amen-btn:focus-visible { outline: 3px solid var(--fcl-purple); outline-offset: 2px; }

/* Ventana (dialog nativo) */
dialog.fcl-modal { width: min(780px, calc(100% - 32px)); max-height: calc(100vh - 64px); padding: 0; border: 0; border-radius: 16px; background: #fff; color: var(--fcl-ink); box-shadow: 0 24px 80px #1a0b2e55; overflow: hidden; font-family: var(--fcl-font-body); }
dialog.fcl-modal[open] { display: flex; flex-direction: column; animation: fcl-modal-in .28s ease; }
dialog.fcl-modal::backdrop { background: #1a0b2e99; }
@keyframes fcl-modal-in { from { opacity: 0; transform: translateY(24px); } }
.fcl-modal__head { flex: none; display: flex; padding: 14px 16px; border-bottom: 1px solid var(--fcl-line); }
button.fcl-modal__close { width: 36px; height: 36px; border: 0; border-radius: 50%; background: transparent; color: var(--fcl-ink); display: grid; place-items: center; font-size: 18px; cursor: pointer; padding: 0; }
button.fcl-modal__close:hover, button.fcl-modal__close:focus { background: var(--fcl-lilac); color: var(--fcl-ink); }
.fcl-modal__body { overflow-y: auto; padding: 8px clamp(20px, 4vw, 40px) 40px; }
.fcl-modal__title { margin: 20px 0 8px; font: 700 clamp(24px, 2.4vw, 32px)/1.15 var(--fcl-font-title); color: var(--fcl-purple); }
.fcl-modal__h { margin: 32px 0 4px; font: 600 19px/1.3 var(--fcl-font-body); color: var(--fcl-ink); }
@media (max-width: 767px) {
	dialog.fcl-modal { width: 100%; max-width: 100% !important; height: 100%; max-height: 100%; border-radius: 0 !important; }
}
@media (prefers-reduced-motion: reduce) { dialog.fcl-modal[open] { animation: none; } }

/* Botones del plugin: blindaje contra estilos genéricos de botón del tema (ej. Hello Elementor) */
button.fcl-round { border: 0; }
button.fcl-round:hover, button.fcl-round:focus { background-color: var(--fcl-yellow); color: var(--fcl-purple); }
button.fcl-filters__reset { border: 0; }
button.fcl-filters__reset:hover, button.fcl-filters__reset:focus { background: var(--fcl-yellow); color: var(--fcl-purple-dk); filter: brightness(.95); }
button.fcl-link, button.fcl-link:hover, button.fcl-link:focus { background: none; border: 0; color: var(--fcl-purple); padding: 0; }

/* Fixes v1.2.1 */
.fcl-slider .fcl-slider__img.is-active, .elementor .fcl-slider img.fcl-slider__img.is-active,
.fcl-hero .fcl-hero__img.is-active { opacity: 1; }
/* Tarjeta fuera del collage (celular, "Más locaciones"): proporción por defecto para que tenga alto */
.elementor-widget-fcl-tarjeta .fcl-card { aspect-ratio: var(--fcl-card-ratio, 4 / 5); height: auto; }
@media (min-width: 768px) { .fcl-collage .elementor-widget-fcl-tarjeta .fcl-card, .fcl-collage .fcl-card { aspect-ratio: auto; height: 100%; } }
@media (max-width: 767px) { .fcl-grid .fcl-card { aspect-ratio: auto; } }
/* Filtros a todo el ancho del contenedor */
.elementor-widget-fcl-filtros, .fcl-filtros-w { width: 100%; }
/* En celular Elementor usa flex-wrap: wrap en contenedores en columna, y eso aplasta un Loop Grid con tarjetas de proporción fija */
.e-con.e-flex:has(> .elementor-widget .elementor-loop-container),
.e-con.e-flex:has(> .elementor-widget-loop-grid),
.e-con.e-flex:has(> .elementor-widget-loop-carousel) { flex-wrap: nowrap !important; }

/* Utilidad: rombos decorativos de la marca (Avanzado → Clases CSS: fcl-rombos). Usa imagen de fondo,
   así no choca con la capa de fondo de los contenedores de Elementor y respeta el color de fondo elegido. */
.fcl-rombos {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 400'%3E%3Cpath d='M200 0l200 200-200 200L0 200z' fill='%23ff4f5e'/%3E%3Cpath d='M250 110l90 90-90 90-90-90z' fill='%237a3f8f'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right center !important;
	background-size: auto 115% !important;
}
@media (max-width: 767px) { .fcl-rombos { background-size: auto 70% !important; background-position: right -40px bottom -20px !important; } }
