/* ==========================================================================
   Hambone Comedy · lo que cambia en WordPress
   --------------------------------------------------------------------------
   hambone.css es la hoja de la estática, copiada tal cual. Esta la adapta al
   marcado de Elementor, que difiere en tres cosas y solo en tres:

   1. Cada widget va dentro de un <div> envoltorio, y la clase de la maqueta va
      en ESE div: `<div class="v2-titulo"><h2>…`, `<div class="v2-fondo"><img>`,
      `<div class="boton"><a class="elementor-button">`. Aquí se le dice al
      hijo que herede o que llene a su padre.
   2. Los contenedores de Elementor son flex en columna con reglas de dos clases
      (0,2,0): la dirección y el `flex` hay que pedirlos con `.e-con.x`.
   3. `.e-con .elementor-widget.elementor-widget` (0,3,0) quita el margen de
      abajo a todos los widgets: se devuelve donde la estática lo tenía.

   Lo que NO hay aquí: colores, tamaños o espacios nuevos. Todo sale de los
   tokens de hambone.css. Si algo se ve distinto de la estática, el fallo está
   en esta hoja.
   ========================================================================== */

/* ── 0 · Página ─────────────────────────────────────────────────────────── */

/* La cabecera fija: Elementor la mete en su propio <header>, que mide lo mismo
   que ella, así que el `sticky` va en el envoltorio. */
.elementor-location-header { position: sticky; top: 0; z-index: 100; }
.admin-bar .elementor-location-header { top: 32px; }
.hb-menu-w, .hb-menu-w > .elementor-shortcode { display: contents; }

/* ── 1 · Titulares, textos e imágenes: el hijo hereda de su envoltorio ──── */

/* Lo que la estática daba a todo h1…h6 y el envoltorio no tiene. Sin peso: la clase manda. */
:where(.elementor-widget-heading) { font-family: var(--hb-f-display); line-height: 0.9; }
.elementor-widget-heading[class*="v2-"] > .elementor-heading-title,
.elementor-widget-heading[class*="hb-"] > .elementor-heading-title {
	font: inherit;
	color: inherit;
	text-transform: inherit;
	letter-spacing: inherit;
	text-align: inherit;
	white-space: inherit;
	text-wrap: inherit;
	margin: 0;
}
/* Elementor da `line-height: 1` a todo titular; la estática, 0,9 (h1…h3). */
.elementor-widget-heading :is(h1, h2, h3).elementor-heading-title { line-height: 0.9; }
/* El título de las tarjetas «Work with us» tomaba el tamaño de su <h3>. */
.hb-ww > .hb-poster { font-size: var(--hb-s-x-large); }

/* Un párrafo seguido de algo lleva su 1rem de la estática aunque sea el último
   de su widget; las excepciones van justo debajo. */
.elementor-widget-text-editor:not(:last-child) > p:last-child { margin-bottom: 1rem; }
.e-con .elementor-widget-text-editor.elementor-widget:is(.hb-colophon, .hb-mb-25, .hb-muted, .hb-eyebrow) > p,
:is(.v2-socio, .v2-formato) > .elementor-widget-text-editor.elementor-widget > p { margin: 0; }

/* Las imágenes: `img { display:block }` de la estática, que Elementor pasa a inline-block. */
.elementor-widget-image img { display: block; }
.elementor-widget-image[class*="v2-"] a,
.elementor-widget-image[class*="hb-"] a { display: block; }

/* Las que llenan su caja (fondos, héroe, marco, fondo de tarjeta). */
.v2-fondo img, .v2-hero__foto img, .v2-whats__marco img, .hb-ww__fondo img {
	width: 100%; height: 100%; object-fit: cover;
}
.v2-hero__foto img { object-position: 70% 30%; }
@media (max-width: 700px) { .v2-hero__foto img { object-position: 72% 20%; } }

/* Las que en la estática llevaban la clase en el <img> y ahora la lleva el div. */
.v2-whats__comica img, .v2-whats__jamon img, .hb-ww__recorte img,
.v2-lista__comico img, .v2-siguenos__comico img, .v2-mosaico img { width: 100%; height: auto; }
.v2-pie__logo img { width: 100%; }
.hb-ww__sello .hb-ww__tinder img { width: 13rem; }
.elementor.elementor .e-con > .hb-ww__recorte { max-width: none; }

/* ── 2 · Contenedores ───────────────────────────────────────────────────── */

/* Un contenedor de Elementor mide `width: 100%`; un bloque de la estática,
   `auto`. Con margen negativo o lateral (el panel de About) no es lo mismo. */
.e-con:is([class*="v2-"], [class*="hb-"]) { --width: auto; min-width: auto; }
/* Y `min-width: 0` en cada widget: un «25%» se partía en dos líneas al encoger. */
.e-con > .elementor-widget { min-width: auto; }

/* Donde la estática tenía un bloque normal (un <div>, un <section>), el
   contenedor también lo es: en flex los márgenes de dos hermanos se SUMAN en
   vez de solaparse, y cada bloque de texto salía 16 px más separado. Los que
   llevan rejilla o fila propia (`hb-wrap v2-whats__rejilla`…) no entran. */
.e-con.hb-wrap:not([class*="__"]), .e-con.v2-seccion, .e-con.hb-section, .e-con.hb-plantilla,
.e-con.v2-whats__texto, .e-con.v2-intro__panel, .e-con.v2-lista__texto, .e-con.v2-banda__caja,
.e-con.v2-siguenos__texto, .e-con.v2-upcoming__lista, .e-con.v2-agenda__lista, .e-con.v2-teja__texto,
.e-con.hb-header, .e-con.hb-footer, .e-con.v2-mosaico-w, .e-con.hb-loop-item { display: block; }


.e-con.v2-botones, .e-con.v2-cifra, .e-con.v2-pie__fila, .e-con.hb-header__inner,
.e-con.v2-gafas { flex-direction: row; }
.e-con.v2-botones, .e-con.v2-pie__fila, .e-con.hb-header__inner { flex-wrap: wrap; }
.e-con.v2-cifra, .e-con.v2-gafas { flex-wrap: nowrap; }

/* Dos botones dentro de un <p>, separados por un espacio (404 y Thank you):
   en línea, y el espacio lo pone el salto de línea que hay entre los dos widgets. */
.e-con.hb-botones-linea { display: block; }
.hb-botones-linea > .elementor-widget { display: inline-block; }

/* «Who we are»: cada lente era un <li> de ancho fijo. */
.e-con.v2-gafas__lente {
	--lente: clamp(6rem, 25vw, 13rem);
	position: relative; flex: 0 0 var(--lente); width: auto;
	display: grid; justify-items: center; align-content: start; gap: 0.6rem; text-align: center;
}
.v2-gafas__lente + .v2-gafas__lente { margin-left: clamp(0.75rem, 2.5vw, 2rem); }
/* El puente de las gafas, colgado de la cara (el ::before del contenedor es de Elementor). */
.v2-gafas__lente + .v2-gafas__lente > .v2-gafas__cara::before {
	content: ""; position: absolute; top: calc(var(--lente) / 2 - 0.5rem); right: 100%;
	width: clamp(0.75rem, 2.5vw, 2rem); height: 1rem; background: var(--hb2-oro); border-radius: 4px;
}


/* «What we do»: la foto en su marco (era <figure>). */
.v2-formato__figura { margin: 1.5rem 0 0; padding: 0.6rem; border: 2px solid rgb(0 0 0 / 0.35); border-radius: 14px; }
.v2-formato__figura img { width: 100%; max-width: 13rem; height: auto; border-radius: 10px; }

/* ── 3 · Márgenes y anchos que Elementor anula ─────────────────────────── */

/* `.elementor.elementor .e-con > .elementor-widget { max-width: 100% }` (0,4,0)
   pisa todo `max-width` de la estática puesto en un envoltorio. Se devuelven. */
.elementor.elementor .e-con > .v2-equipo__texto { max-width: 52rem; }
.elementor.elementor .e-con > :is(.v2-video__enlace, .v2-agenda__banner) { max-width: 80rem; }
.elementor.elementor .e-con > .v2-siguenos__comico { max-width: 44rem; }
.elementor.elementor .e-con > .hb-lede { max-width: 46ch; }
.elementor.elementor .e-con > .hb-ww__texto { max-width: 30ch; }
.elementor.elementor .e-con > .v2-cifra__txt { max-width: 9rem; }
.elementor.elementor .e-con > .hb-formulario--contacto { max-width: 53rem; }
.elementor.elementor .v2-galeria .e-con > .hb-muted { max-width: 40rem; }
@media (max-width: 760px) {
	.elementor.elementor .e-con > .v2-siguenos__comico { max-width: 24rem; }
	.elementor.elementor .e-con > .v2-lista__comico { max-width: 18rem; }
}

.e-con > .elementor-widget.elementor-widget.v2-titulo { margin-block-end: var(--hb-sp-40); }
.e-con.v2-banda__caja > .elementor-widget.elementor-widget.v2-titulo { margin-block-end: 0; }
.e-con.v2-lista__texto > .elementor-widget.elementor-widget.v2-titulo { margin-block-end: 1.25rem; }
.e-con.v2-intro__panel > .elementor-widget.elementor-widget.v2-titulo { margin-block-end: 1rem; }
.e-con > .elementor-widget.elementor-widget.v2-siguenos__titulo { margin-block-end: 0.5rem; }
.e-con > .elementor-widget.elementor-widget.hb-mb-25 { margin-block-end: 2.5rem; }
.e-con > .elementor-widget.elementor-widget.v2-agenda__banner { margin-block-end: 1.5rem; }
.v2-galeria .e-con > .elementor-widget.elementor-widget.hb-muted { margin-block-end: 1.5rem; }

/* ── 4 · Botones: el aspecto de .hb-btn sobre el <a> de Elementor ──────── */

.boton .elementor-button {
	display: inline-block;
	font-family: var(--hb-f-display);
	font-size: 1.25rem;
	font-weight: 400;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	line-height: 1;
	background: linear-gradient(180deg, var(--hb2-amarillo) 0%, var(--hb2-oro) 100%);
	color: var(--hb-ink);
	fill: currentColor;
	border: 1px solid var(--hb2-amarillo);
	border-radius: 5px;
	padding: 0.95rem 1.6rem 0.85rem;
	transition: filter 0.2s var(--hb-ease), transform 0.2s var(--hb-ease);
}
.boton .elementor-button:hover,
.boton .elementor-button:focus { filter: brightness(1.08); color: var(--hb-ink); text-decoration: none; transform: translateY(-2px); }
.boton .elementor-button:visited { color: var(--hb-ink); }
.boton .elementor-button:focus-visible { outline: 3px solid var(--hb-c-glow); outline-offset: 3px; }

.boton--outline .elementor-button,
.boton--outline .elementor-button:visited { background: transparent; color: var(--hb2-amarillo); border-color: var(--hb2-amarillo); }
.boton--outline .elementor-button:hover,
.boton--outline .elementor-button:focus { background: var(--hb2-amarillo); color: var(--hb-ink); }

.boton--claro .elementor-button,
.boton--claro .elementor-button:visited { color: var(--hb-c-contrast); border-color: var(--hb-c-contrast); }
.boton--claro .elementor-button:hover,
.boton--claro .elementor-button:focus { background: var(--hb-c-contrast); color: var(--hb-ink); }

.hb-ww .boton .elementor-button {
	background: linear-gradient(180deg, var(--hb-c-glow), var(--hb-c-gold) 55%);
	color: var(--hb-ink);
	border-radius: 4px;
	box-shadow: 0 2px 10px rgb(0 0 0 / 0.35);
}

/* ── 5 · Shows: el aviso cuando no hay ninguna fecha publicable ────────── */

/* Es el «Nothing found message» del Loop Grid, con el aspecto de .hb-sin-fechas. */
.hb-shows .e-loop-nothing-found-message { color: inherit; text-align: start; padding: 0; }
.hb-shows .e-loop-nothing-found-message__text {
	margin: 0; padding: 1.5rem; border: 2px dashed currentColor; border-radius: 4px; opacity: 0.85;
}
.v2-upcoming__lista .hb-shows .e-loop-nothing-found-message__text { margin: 1.5rem 0.5rem; }
.v2-agenda__lista .hb-shows .e-loop-nothing-found-message__text { margin: 1rem; }

/* ── 6 · Formularios (widget Form de Elementor Pro) con el aspecto de .hb-form ── */

.hb-formulario .elementor-form-fields-wrapper { display: grid; gap: 1rem; margin: 0; }
.hb-formulario .elementor-form-fields-wrapper > div:not(.elementor-field-group) { display: none; } /* la trampa */
.hb-formulario .elementor-form-fields-wrapper > .elementor-field-group {
	display: grid; gap: 0.4rem; align-content: start;
	width: auto; max-width: none; margin: 0; padding: 0;
}
.hb-formulario .elementor-field-group > .elementor-field-label:not(.elementor-screen-only) {
	padding: 0; margin: 0;
	font-family: var(--hb-f-ui); font-size: 0.7rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--hb-c-muted);
}
.hb-formulario .elementor-field-group .elementor-field-textual,
.hb-formulario .elementor-field-group select {
	box-sizing: border-box; width: 100%; min-height: 0;
	font-family: var(--hb-f-body); font-size: 1rem; line-height: normal;
	color: var(--hb-c-contrast); background: rgba(10, 10, 10, 0.42);
	border: 2px solid rgba(247, 241, 232, 0.45); border-radius: 2px;
	padding: 0.85rem 1rem;
	transition: border-color 0.15s var(--hb-ease), background 0.15s var(--hb-ease);
}
.hb-formulario .elementor-field-group textarea.elementor-field-textual { min-height: 9rem; resize: vertical; }
.hb-formulario .elementor-field-group .elementor-field-textual:focus,
.hb-formulario .elementor-field-group select:focus { border-color: var(--hb-c-gold); outline: 0; }
.hb-formulario .elementor-field-textual::placeholder { color: rgba(247, 241, 232, 0.65); }

/* El consentimiento: la casilla y su texto (era <label class="hb-consent">). */
.hb-formulario .elementor-field-option {
	display: flex; align-items: center; gap: 0.6rem; min-height: 44px; cursor: pointer;
	font-size: 0.82rem; line-height: 1.45; color: var(--hb-c-muted);
}
.hb-formulario .elementor-field-option label { cursor: pointer; }
.hb-formulario .elementor-field-option input[type="checkbox"] { width: 22px; height: 22px; flex: none; margin: 0.2rem 0 0; accent-color: var(--hb-accent, currentColor); }

/* El botón de enviar: .hb-form button de la estática. */
.hb-formulario .e-form__buttons { display: flex; padding: 0; }
.hb-formulario .e-form__buttons .elementor-button {
	font-family: var(--hb-f-display); font-size: 1.25rem; font-weight: 400; letter-spacing: 0.02em;
	text-transform: uppercase; line-height: 1; color: var(--hb-ink);
	background: linear-gradient(180deg, var(--hb2-amarillo) 0%, var(--hb2-oro) 100%);
	border: 1px solid var(--hb2-amarillo); border-radius: 5px;
	padding: 0.95rem 2rem 0.85rem; min-height: 0; cursor: pointer;
	transition: filter 0.15s var(--hb-ease), transform 0.15s var(--hb-ease);
}
.hb-formulario .e-form__buttons .elementor-button:hover { filter: brightness(1.08); transform: translateY(-2px); color: var(--hb-ink); }
.hb-formulario .elementor-message { margin: 0.5rem 0 0; font-size: var(--hb-s-small); color: var(--hb-c-contrast); }

/* La lista de correo: campos blancos, sin etiqueta visible, botón a lo ancho. */
.hb-formulario--lista .elementor-field-group .elementor-field-textual { background: #fff; color: var(--hb-ink); border: 0; border-radius: 3px; }
.hb-formulario--lista .elementor-field-textual::placeholder { color: #5F5F5F; }
.hb-formulario--lista .elementor-field-option { color: var(--hb-c-contrast); }
.hb-formulario--lista .e-form__buttons .elementor-button { width: 100%; }

/* Contact: dos columnas, etiquetas en Koulen, «Submit» centrado. */
.hb-formulario--contacto { margin-inline: auto; }
.hb-formulario--contacto .elementor-form-fields-wrapper { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hb-formulario--contacto .elementor-field-group-message,
.hb-formulario--contacto .e-form__buttons { grid-column: 1 / -1; }
.hb-formulario--contacto .elementor-field-group > .elementor-field-label:not(.elementor-screen-only) {
	font-family: var(--hb-f-display); font-size: 1.35rem; letter-spacing: 0.02em; text-transform: uppercase; color: var(--hb-c-contrast);
}
.hb-formulario--contacto .elementor-field-group .elementor-field-textual,
.hb-formulario--contacto .elementor-field-group select { background: #fff; color: var(--hb-ink); border: 0; border-radius: 5px; }
.hb-formulario--contacto .elementor-field-textual::placeholder { color: #5F5F5F; }
.hb-formulario--contacto .e-form__buttons { justify-content: center; }
.hb-formulario--contacto .e-form__buttons .elementor-button { min-width: 11rem; }
@media (max-width: 700px) { .hb-formulario--contacto .elementor-form-fields-wrapper { grid-template-columns: 1fr; } }

/* ── 7 · Sample Clips (Loop Grid de fichas de Vídeo) ───────────────────── */

.v2-clips__grid { max-width: 80rem; margin-inline: auto; }
.v2-clips__grid .elementor-loop-container.elementor-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
.v2-clips__grid .v2-clip { display: block; transition: filter 0.2s var(--hb-ease); }
.v2-clips__grid .v2-clip:hover { filter: brightness(1.1); }
.v2-clips__grid .v2-clip img { display: block; width: 100%; height: auto; }
@media (max-width: 700px) {
	.elementor.elementor .e-con > .v2-clips__grid { max-width: 22rem; }
	.v2-clips__grid .elementor-loop-container.elementor-grid { grid-template-columns: 1fr; gap: 0.75rem; }
}

/* ── 8 · Gallery (Gallery de Elementor Pro): los filtros como los chips de la estática ── */

.v2-galeria__rejilla .elementor-gallery__titles-container { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem; margin: 0 0 1.5rem; }
.v2-galeria__rejilla .elementor-gallery-title {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 44px; min-width: 7rem; margin: 0; padding: 0.5rem 1.1rem;
	font-family: var(--hb-f-display); font-size: 1.05rem; font-weight: 400; letter-spacing: 0.02em; text-transform: uppercase; line-height: normal;
	color: var(--hb-c-contrast); background: transparent;
	border: 1px solid var(--hb2-amarillo); border-radius: 3px; cursor: pointer;
	transition: background 0.15s var(--hb-ease), color 0.15s var(--hb-ease), border-color 0.15s var(--hb-ease);
}
.v2-galeria__rejilla .elementor-gallery-title:hover,
.v2-galeria__rejilla .elementor-gallery-title.elementor-item-active {
	background: linear-gradient(180deg, var(--hb2-amarillo) 0%, var(--hb2-oro) 100%); color: var(--hb-ink); border-color: var(--hb2-amarillo);
}
.v2-galeria__rejilla .elementor-gallery-title:focus-visible { outline: 3px solid var(--hb-c-glow); outline-offset: 2px; }
.v2-galeria__rejilla .e-gallery-item { border-radius: 10px; overflow: hidden; background: #111; transition: transform 0.25s var(--hb-ease), filter 0.25s var(--hb-ease); }
.v2-galeria__rejilla .e-gallery-item:hover { transform: scale(1.02); filter: brightness(1.08); z-index: 2; }
/* El desplegable con su flecha nativa, como la estática (Elementor la quita y pone un icono). */
.hb-formulario .elementor-select-wrapper select { appearance: auto; -webkit-appearance: menulist; }
.hb-formulario .elementor-select-wrapper .select-caret-down-wrapper { display: none; }
.hb-formulario .elementor-select-wrapper::before { content: none; }
.hb-formulario .elementor-field-textual::placeholder { opacity: 1; }

/* En Elementor la foto del hero tiene que poder pincharse: el degradado de
   encima no se come el clic (en la web no cambia nada). */
.v2-hero::after { pointer-events: none; }

/* El titular del hero (8,7vw, interlineado 0,9) pinta sus letras por encima de su caja y tapaba
   los botones desde 1024 px: el clic caía en el h1. Los botones, por encima. */
.v2-hero .e-con.v2-botones { position: relative; z-index: 1; }
