/* Asociaciones sin fotos (7-nov-2026). Ver class-redterrassa-asociaciones-diseno.php.
   Rejilla de tarjetas blancas con icono de linea, cifra grande y pie con flecha;
   Centros civicos en una franja oscura. Colores y letra, los del tema. */
.rt-asoc { --rt-asoc-rojo: var(--rt-color-rojo-accesible, #c9141e); --rt-asoc-tinta: var(--rt-color-tinta, #1d1d1f); --rt-asoc-gris: var(--rt-color-gris, #62646a); --rt-asoc-linea: rgb(29 29 31 / 10%); --rt-asoc-suave: #fbeaeb; box-sizing: border-box; max-width: 78rem; margin-inline: auto; }
.rt-asoc *, .rt-asoc *::before, .rt-asoc *::after { box-sizing: border-box; }
.rt-asoc ul, .rt-asoc li { margin: 0; padding: 0; list-style: none !important; }
.rt-asoc li::before, .rt-asoc li::marker { content: none !important; display: none !important; }

/* Icono en su cuadro */
.rt-asoc__ico { display: inline-grid; place-items: center; flex: none; width: 3rem; height: 3rem; border-radius: 14px; background: var(--rt-asoc-suave); color: var(--rt-asoc-rojo); transition: background var(--rt-dur-fast, .18s) ease, color var(--rt-dur-fast, .18s) ease, transform var(--rt-dur, .42s) var(--rt-ease, ease); }
.rt-asoc__ico svg { width: 1.5rem; height: 1.5rem; }
.rt-asoc__ir { display: inline-block; transition: transform var(--rt-dur-fast, .18s) ease; }

/* Centros civicos: franja oscura */
.rt-asoc--lugares { margin-block: clamp(1.5rem, 3vw, 2.5rem) clamp(.5rem, 1.5vw, 1rem); }
.rt-asoc-lugar { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1.1rem 1.4rem; padding: clamp(1.2rem, 2.6vw, 1.75rem) clamp(1.2rem, 3vw, 2rem); overflow: hidden; border-radius: 22px; background: var(--rt-asoc-tinta); color: #fff !important; text-decoration: none !important; isolation: isolate; transition: transform var(--rt-dur, .42s) var(--rt-ease, ease), box-shadow var(--rt-dur, .42s) var(--rt-ease, ease); }
.rt-asoc-lugar::after { content: ""; position: absolute; inset: auto -10% -60% auto; z-index: -1; width: 22rem; height: 22rem; border-radius: 50%; background: radial-gradient(closest-side, rgb(201 20 30 / 45%), transparent); }
.rt-asoc-lugar .rt-asoc__ico { width: 3.5rem; height: 3.5rem; border-radius: 16px; background: var(--rt-asoc-rojo); color: #fff; }
.rt-asoc-lugar .rt-asoc__ico svg { width: 1.75rem; height: 1.75rem; }
.rt-asoc-lugar__texto { display: grid; gap: .2rem; min-width: 0; }
.rt-asoc-lugar__eyebrow { color: rgb(255 255 255 / 70%); font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.rt-asoc-lugar__nombre { font-family: var(--rt-font-heading); font-size: clamp(1.35rem, 2.6vw, 1.85rem); font-weight: 800; letter-spacing: -.035em; line-height: 1.1; }
.rt-asoc-lugar__linea { color: rgb(255 255 255 / 78%); font-size: .95rem; line-height: 1.45; }
.rt-asoc-lugar > .rt-asoc__ir { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 50%; border: 1px solid rgb(255 255 255 / 30%); font-size: 1.25rem; }
.rt-asoc-lugar:hover, .rt-asoc-lugar:focus-visible { transform: translateY(-3px); box-shadow: 0 1.4rem 2.6rem -1.4rem rgb(29 29 31 / 55%); }
.rt-asoc-lugar:hover > .rt-asoc__ir, .rt-asoc-lugar:focus-visible > .rt-asoc__ir { transform: translateX(4px); background: #fff; color: var(--rt-asoc-tinta); }

/* Cabeza de los ambitos */
.rt-asoc--ambitos { margin-block: clamp(1.5rem, 3vw, 2.5rem) clamp(2.5rem, 5vw, 4rem); }
.rt-asoc__cabeza { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .4rem 1.5rem; margin-bottom: 1.25rem; padding-top: 1rem; border-top: 2px solid var(--rt-asoc-tinta); }
.rt-asoc__titulo { margin: 0; color: var(--rt-asoc-tinta); font-family: var(--rt-font-heading); font-size: clamp(1.5rem, 3vw, 2.2rem); font-weight: 800; letter-spacing: -.045em; line-height: 1.05; }
.rt-asoc__resumen { margin: 0; color: var(--rt-asoc-gris); font-size: .95rem; font-variant-numeric: tabular-nums; }
.rt-asoc__resumen strong { color: var(--rt-asoc-tinta); font-weight: 800; }

/* Las tarjetas */
.rt-asoc__lista { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(.8rem, 1.6vw, 1.15rem); }
.rt-asoc__item { display: flex; }
.rt-asoc__tarjeta { position: relative; display: flex; flex: 1; flex-direction: column; gap: .55rem; min-height: 15rem; padding: 1.35rem 1.4rem 1.1rem; overflow: hidden; border: 1px solid var(--rt-asoc-linea); border-radius: 20px; background: var(--rt-color-blanco, #fff); color: var(--rt-asoc-tinta) !important; text-decoration: none !important; transition: transform var(--rt-dur, .42s) var(--rt-ease, ease), box-shadow var(--rt-dur, .42s) var(--rt-ease, ease), border-color var(--rt-dur-fast, .18s) ease; }
.rt-asoc__tarjeta::after { content: ""; position: absolute; inset: auto 0 0; height: 3px; background: var(--rt-asoc-rojo); transform: scaleX(0); transform-origin: left; transition: transform var(--rt-dur, .42s) var(--rt-ease, ease); }
.rt-asoc__arriba { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: .35rem; }
.rt-asoc__cifra { display: grid; justify-items: end; line-height: 1; text-align: right; }
.rt-asoc__cifra strong { font-family: var(--rt-font-heading); font-size: 2.1rem; font-weight: 800; letter-spacing: -.05em; font-variant-numeric: tabular-nums; }
.rt-asoc__cifra span { margin-top: .25rem; color: var(--rt-asoc-gris); font-size: .74rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.rt-asoc__nombre { font-family: var(--rt-font-heading); font-size: 1.22rem; font-weight: 800; letter-spacing: -.03em; line-height: 1.2; text-wrap: balance; }
.rt-asoc__muestra { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: var(--rt-asoc-gris); font-size: .88rem; line-height: 1.45; }
.rt-asoc__cifra-movil { display: none; }
.rt-asoc__pie { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: .85rem; border-top: 1px solid var(--rt-asoc-linea); color: var(--rt-asoc-tinta); font-size: .9rem; font-weight: 800; }
.rt-asoc__tarjeta:hover, .rt-asoc__tarjeta:focus-visible { transform: translateY(-4px); border-color: rgb(201 20 30 / 35%); box-shadow: 0 1.2rem 2.4rem -1.3rem rgb(29 29 31 / 35%); }
.rt-asoc__tarjeta:hover::after, .rt-asoc__tarjeta:focus-visible::after { transform: scaleX(1); }
.rt-asoc__tarjeta:hover .rt-asoc__ico, .rt-asoc__tarjeta:focus-visible .rt-asoc__ico { background: var(--rt-asoc-rojo); color: #fff; transform: rotate(-6deg); }
.rt-asoc__tarjeta:hover .rt-asoc__pie, .rt-asoc__tarjeta:focus-visible .rt-asoc__pie { color: var(--rt-asoc-rojo); }
.rt-asoc__tarjeta:hover .rt-asoc__ir, .rt-asoc__tarjeta:focus-visible .rt-asoc__ir { transform: translateX(4px); }

.rt-asoc :focus-visible { outline: 3px solid var(--rt-asoc-tinta); outline-offset: 3px; }
.rt-asoc .rt-shops__aviso { margin-top: 1.5rem; color: var(--rt-asoc-gris); font-size: .82rem; line-height: 1.55; }

@media (max-width: 1024px) { .rt-asoc__lista { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Movil: una columna compacta; icono, nombre y cifra en una fila. */
@media (max-width: 640px) {
	.rt-asoc-lugar { grid-template-columns: auto minmax(0, 1fr); }
	.rt-asoc-lugar > .rt-asoc__ir { display: none; }
	.rt-asoc-lugar .rt-asoc__ico { width: 3rem; height: 3rem; }
	.rt-asoc__lista { grid-template-columns: 1fr; gap: .6rem; }
	.rt-asoc__tarjeta { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "ico nombre ir" "ico cifra ir"; align-items: center; gap: .15rem .9rem; min-height: 0; padding: .9rem 1rem; border-radius: 16px; }
	.rt-asoc__arriba { display: contents; }
	.rt-asoc__arriba .rt-asoc__ico { grid-area: ico; width: 2.75rem; height: 2.75rem; border-radius: 12px; }
	.rt-asoc__cifra { display: none; }
	.rt-asoc__nombre { grid-area: nombre; font-size: 1.02rem; }
	.rt-asoc__cifra-movil { display: block; grid-area: cifra; color: var(--rt-asoc-rojo); font-size: .8rem; font-weight: 800; font-variant-numeric: tabular-nums; }
	.rt-asoc__muestra { display: none; }
	.rt-asoc__pie { grid-area: ir; margin: 0; padding: 0; border: 0; font-size: 0; }
	.rt-asoc__pie .rt-asoc__ir { font-size: 1.2rem; }
}

@media (prefers-reduced-motion: reduce) {
	.rt-asoc-lugar, .rt-asoc__tarjeta, .rt-asoc__tarjeta::after, .rt-asoc__ico, .rt-asoc__ir { transition: none; }
}

/* --- Toda la web (7-nov): Salud, Red Solidaria, Util, Trabajo, Movilidad, Barrios y Ocio --- */
.rt-asoc--puertas, .rt-asoc--movilidad, .rt-asoc--barrios, .rt-asoc--ocio { margin-block: clamp(1.5rem, 3vw, 2.5rem) clamp(2rem, 4vw, 3rem); }
.rt-asoc__grupo { margin: clamp(1.6rem, 3vw, 2.2rem) 0 .8rem; padding-top: .8rem; border-top: 2px solid var(--rt-asoc-tinta); color: var(--rt-asoc-tinta); font-family: var(--rt-font-heading); font-size: clamp(1.15rem, 2vw, 1.4rem); font-weight: 800; letter-spacing: -.03em; }
.rt-asoc__grupo:first-child { margin-top: 0; }
.rt-asoc__lista--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.rt-asoc__lista--4 .rt-asoc__tarjeta { min-height: 13rem; padding: 1.15rem 1.2rem 1rem; }
.rt-asoc__lista--4 .rt-asoc__nombre { font-size: 1.08rem; }
.rt-asoc__lista--4 .rt-asoc__cifra strong { font-size: 1.8rem; }
.rt-asoc__extra { color: var(--rt-asoc-rojo); font-size: .82rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.rt-asoc__marca { align-self: flex-start; padding: .15rem .55rem; border-radius: 999px; background: var(--rt-color-fondo, #f4f5f6); color: var(--rt-asoc-gris); font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.rt-asoc__item--apagada .rt-asoc__tarjeta { opacity: .72; }
.rt-asoc--barrios .rt-asoc__muestra { -webkit-line-clamp: 1; }
@media (max-width: 1024px) { .rt-asoc__lista--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 800px) { .rt-asoc__lista--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
	.rt-asoc__lista--4 { grid-template-columns: 1fr; }
	.rt-asoc__lista--4 .rt-asoc__tarjeta { min-height: 0; padding: .9rem 1rem; }
	.rt-asoc__tarjeta { grid-template-areas: "ico nombre ir" "ico cifra ir" "ico extra ir"; }
	.rt-asoc__extra { grid-area: extra; font-size: .76rem; }
	.rt-asoc__marca { display: none; }
}
/* Movil: el texto centrado al icono, tenga una, dos o tres lineas. */
@media (max-width: 640px) {
	.rt-asoc__tarjeta { grid-template-areas: "ico . ir" "ico nombre ir" "ico cifra ir" "ico extra ir" "ico . ir"; grid-template-rows: 1fr auto auto auto 1fr; row-gap: 0; }
	.rt-asoc__cifra-movil, .rt-asoc__extra { margin-top: .15rem; }
}

/* Taxi (8-nov): la tarjeta de Nou Taxi es un bloque de Nectar copiado y Nectar solo
   genera el estilo de un bloque al guardarlo desde su editor. Aqui, el de las otras
   tres para las cuatro, y en ordenador las cuatro del mismo ancho. */
body.page-id-15134 .rt-medios-fila > .rt-medio-nb,
body.page-id-15136 .rt-medios-fila > .rt-medio-nb { display: flex; flex-direction: column; gap: 20px; box-sizing: border-box; padding: 16px 16px 20px; border: 1px solid rgba(29, 29, 31, .12); border-radius: 14px; background: #fff; }
@media (min-width: 1000px) {
	body.page-id-15134 .rt-medios-fila > .rt-medio-nb,
	body.page-id-15136 .rt-medios-fila > .rt-medio-nb { flex: 1 1 0 !important; min-width: 0; width: auto !important; }
}
