/*
 Theme Name:   Kaosystem
 Theme URI:    https://www.kaosystem.com/
 Description:  Tema hijo de GeneratePRess para Kaosystem
 Author:       Fede Gómez
 Author URI:   https://www.fedegomez.es
 Template:     generatepress
 Version:      0.1
*/

/* COLORES */
:root {
    --main-color: #00739f;
    --main-color-hover: rgba(0, 115, 159, 0.84);
    --accent-color: #b83a2c;
    --accent-color-hover: rgba(184, 58, 44, 0.84);
    --orange: #E87B40;
    --lighter-gray: #f0f0f0;
    --light-gray: #ccc;
    --medium-gray: #a0a0a0;
    --dark-gray: #666;
}

button:not(.rwmb-button),
html input[type="button"],
input[type="reset"],
input[type="submit"],
a.button,
a.wp-block-button__link:not(.has-background),
.gb-button {
    padding: 10px 20px !important;
    border-radius: 5px !important;
    border: 0;
}

.one-container .site-content {
    margin-top: 100px;
    margin-bottom: 21px;
    box-shadow: 0 1px 3px 0 rgb(0 0 0 / 8%);
}

.nav-float-right .site-header {
    z-index: 1000;
    margin-top: 0px;
    position: fixed;
    top: 0px;
    width: 100%;
}

.header-shadow {
    -webkit-box-shadow: 0 1px 5px rgb(57 63 72 / 20%);
    box-shadow: 0 1px 5px rgb(57 63 72 / 20%);
}

.nav-float-right #site-navigation {
    margin-left: 10px;
    flex-grow: 1;
}


.main-navigation .inside-navigation {
    margin-left: 0;
    max-width: none;
}

.nav-float-right #site-navigation a {
    line-height: normal;
}

.nav-float-right .acceso {
    margin-left: auto;
}

.nav-float-right #primary-menu {
    flex-grow: 1;
}

.mobile-menu-control-wrapper .menu-toggle,
.has-inline-mobile-toggle #site-navigation.toggled {
    background-color: transparent;
}

.button-accent,
.acceso a {
    padding: 10px !important;
    background-color: var(--accent-color) !important;
    color: #fff !important;
    border-radius: 5px !important;
    ;
}

.button-accent:hover,
.button-accent:focus,
.button-accent:active,
.acceso a:hover,
.acceso a:focus,
.acceso a:active {
    background-color: var(--accent-color-hover) !important;
    cursor: pointer;
}

.menu-toggle {
    padding-right: 0;
}

.perfil-profesional .page-header .page-title {
    display: inline-block;
    margin-bottom: 0px;
}

.ficha-profesional .entry-content {
    display: flex;
    gap: 1em;
}

.nav-profesional {
    margin-bottom: 1em;
    border-bottom: 1px solid var(--lighter-gray);
}

.nav-profesional a {
    color: inherit;
    padding-bottom: 5px;
    margin-right: 20px;
    font-weight: bold;
}

.nav-profesional a:last-child {
    margin-right: 0;
}

.nav-profesional a:hover,
.nav-profesional a:focus,
.nav-profesional a:active {
    opacity: 0.9;
}

#resultados .profesional-wrap {
    border-bottom: 1px solid var(--lighter-gray);
}

.profesional-wrap {
    display: flex;
    padding: 1em;
}

.profesional-wrap .user-name {
    margin: 0;
}

.profesional-wrap .user-name a {
    color: inherit;
    line-height: 24px;
}

.titular {
    color: var(--dark-gray);
    font-size: 14px;
}

.logotipo {
    display: flex;
    align-items: center;
    margin-right: 15px;
}

.logotipo img,
.info>div img {
    max-width: none;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 50%;
}

.info>div>img {
    margin-right: 10px;
}

.info>div {
    display: flex;
    align-items: center;
    margin-bottom: 10px;
}

.author .info>div:first-child {
    justify-content: space-between;
}

.info>div:first-child>div {
    display: flex;
    flex-direction: column;
}

.info p:last-child {
    margin-bottom: 0;
}

.labels {
    float: right;
    margin-left: auto;
}

.promo,
.premium,
.verificado {
    padding: 3px 7px;
    font-size: 0.8rem;
    color: #fff;
    border-radius: 3px;
    margin-right: 3px;
}

.promo {
    background-color: rgb(63, 153, 63);
}

.premium {
    background-color: var(--orange);
    margin-right: 0;
}

.verificado {
    background-color: var(--medium-gray);
    margin-right: 0;
    margin-left: 5px;
}

.secciones-profesional {
    width: 70%;
}

.secciones-profesional section {
    margin-bottom: 2em;
}

.contacto-profesional {
    width: 30%;
    display: flex;
}

.form-contacto {
    border: 1px solid var(--light-gray);
    border-radius: 3px;
    padding: 1em;
    position: -webkit-sticky;
    position: sticky;
    top: 110px;
    font-size: 15px;
}

.form-contacto h3 {
    font-weight: 600;
}

.form-contacto input[type=submit],
.form-contacto-movil input[type=submit] {
    width: 100%;
}

.ginput_container_consent {
    font-size: 15px;
}

.ginput_container_consent input {
    width: 0.79em;
    font-size: 15px;
}

.gfield_consent_description {
    border: 0 !important;
    overflow: auto !important;
}

.guardarMensaje .texto {
    top: 2px;
    position: relative;
}

/*.form-contacto .switch,
.form-contacto-movil .switch {*/
.form-contacto-profesional .switch {
    position: relative;
    display: inline-block;
    width: 44px;
    height: 26px;
}

/*.form-contacto .switch input,
.form-contacto-movil .switch input {*/
.form-contacto-profesional .switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

/*.form-contacto .slider,
.form-contacto-movil .slider {*/
.form-contacto-profesional .slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: var(--light-gray);
    -webkit-transition: .4s;
    transition: .4s;
}

/*.form-contacto .slider:before,
.form-contacto-movil .slider:before {*/
.form-contacto-profesional .slider:before {
    position: absolute;
    content: "";
    height: 18px;
    width: 18px;
    left: 4px;
    bottom: 4px;
    background-color: white;
    -webkit-transition: .4s;
    transition: .4s;
}

/*.form-contacto input:checked+.slider,
.form-contacto-movil input:checked+.slider {*/
.form-contacto-profesional input:checked+.slider {
    background-color: var(--main-color);
}

/*.form-contacto input:focus+.slider,
.form-contacto-movil input:focus+.slider {*/
.form-contacto-profesional input:focus+.slider {
    box-shadow: 0 0 1px var(--main-color);
}

/*.form-contacto input:checked+.slider:before,
.form-contacto-movil input:checked+.slider:before {*/
.form-contacto-profesional input:checked+.slider:before {
    -webkit-transform: translateX(18px);
    -ms-transform: translateX(18px);
    transform: translateX(18px);
}

/* Rounded sliders */
/*.form-contacto .slider.round,
.form-contacto-movil .slider.round {*/
.form-contacto-profesional .slider.round {
    border-radius: 34px;
}

/*.form-contacto .slider.round:before,
.form-contacto-movil .slider.round:before {*/
.form-contacto-profesional .slider.round:before {
    border-radius: 50%;
}

.form-contacto-movil {
    display: none;
}

.detalles-contacto div {
    display: flex;
    flex-wrap: wrap;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--lighter-gray);
}

.detalles-contacto div img {
    margin-right: 10px;
}

.detalles-contacto a {
    color: inherit;
}

.ver-numero,
.enviar-whatsapp {
    cursor: pointer;
}

.detalles-contacto p {
    margin-top: 5px;
    margin-bottom: 0;
    color: var(--dark-gray);
    font-size: 0.89em;
}

@media (min-width:768px) {
    .form-movil h3 {
        font-size: 1em;
    }
}

@media (max-width:768px) {
    .secciones-profesional {
        width: 100%;
    }

    .contacto-profesional {
        width: 100%;
        bottom: 0;
        left: 0;
        position: fixed;

        /* Center the content */
        align-items: center;
        display: flex;
        justify-content: center;
    }

    .form-movil {
        border: 0;
        border-radius: 0;
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        height: 100%;
        width: 100%;
        background-color: #fff;
        z-index: 99999999;
        overflow: auto;
        max-width: 100vw;
    }

    .form-movil h3 {
        margin-bottom: 0;
    }

    .form-movil textarea {
        height: 100px !important;
    }

    .form-movil .gform_wrapper.gravity-theme .ginput_complex span {
        margin-bottom: 0;
    }

    .contacto-profesional-content {
        /* Take available width */
        flex: 1;
    }

    .contacto-profesional .form-contacto {
        display: none;
    }

    .form-movil .modal-header {
        display: flex;
        justify-content: space-between;
    }

    .form-movil .modal-content {
        display: flex;
        align-items: center;
        height: 100vh;
        background-color: #fff;
        z-index: 99;
    }

    .x-cerrar {
        position: relative;
        width: 32px;
        height: 32px;
        opacity: 0.5;
    }

    .x-cerrar:hover {
        opacity: 1;
    }

    .x-cerrar:before,
    .x-cerrar:after {
        position: absolute;
        left: 15px;
        content: ' ';
        height: 33px;
        width: 2px;
        background-color: #333;
    }

    .x-cerrar:before {
        transform: rotate(45deg);
    }

    .x-cerrar:after {
        transform: rotate(-45deg);
    }

    .capa-movil {
        display: flex;
        align-items: center;
        gap: 0.3em;
        padding: 0.3em;
        background-color: var(--lighter-gray);
        max-width: 100vw;
    }

    .capa-movil .button {
        width: 33.3%;
        text-align: center;
        font-size: 13px;
        padding: 10px 0 !important;
    }

    .capa-movil .button img {
        filter: invert(1);
        vertical-align: middle;
    }
}

.rank-math-breadcrumb {
    font-size: 14px;
}

.rank-math-breadcrumb .last {
    font-weight: bold;
}

.resultados-trabajos {
    -moz-column-count: 4;
    column-count: 4;
    -moz-column-gap: 1rem;
    column-gap: 1rem;
    width: 100%;
    padding-top: 1rem;
}

.lista-trabajos {
    -moz-column-count: 3;
    column-count: 3;
    -moz-column-gap: 1rem;
    column-gap: 1rem;
    width: 100%;
}

.trabajo-realizado {
    -moz-column-break-inside: avoid;
    break-inside: avoid;
    margin-bottom: 1rem;
}

.resultados-trabajos a,
.lista-trabajos a {
    color: inherit;
}

.trabajo-grid-item img {
    border-radius: 16px;
    width: 100%;
}

.trabajo-realizado .entry-title {
    font-size: 18px;
}

.idiomas ul {
    list-style: none;
    display: flex;
    text-align: center;
    margin: 0;
}

.idiomas li {
    margin-right: 1rem;
}

@media (max-width: 768px) {
    .nav-float-right #site-navigation a {
        line-height: 40px;
        display: inline;
    }

    .resultados-trabajos,
    .lista-trabajos {
        -moz-column-count: 2;
        column-count: 2;
    }

    .trabajo-realizado .entry-title {
        font-size: 16px;
    }
}

.generate-columns-container .generate-columns {
    padding-left: 0 !important;
}

.generate-columns-container .generate-columns .inside-article {
    padding: 0px 10px;
}

@media (max-width: 767px) {

    .generate-columns.mobile-grid-100,
    .grid-sizer.mobile-grid-100 {
        width: 50% !important;
    }
}

@media (max-width: 1400px) {
    .one-container .site-content {
        padding: 30px;
    }
}

#pagination {
    margin: 2em auto;
    font-size: 16px;
}

ul.page-numbers {
    list-style: none;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    width: fit-content;
    max-width: 100%;
    border: 1px solid var(--lighter-gray);
    border-radius: 4px;
}

ul.page-numbers li:first-child span.current {
    border-radius: 4px;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

ul.page-numbers li:last-child span.current {
    border-radius: 4px;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

ul.page-numbers a.page-numbers,
ul.page-numbers span.dots,
ul.page-numbers span.current {
    padding: 7px 10px;
    line-height: 16px;
    display: inline-block;
    color: #333;
}

ul.page-numbers span.dots {
    padding: 7px 0px;
    letter-spacing: -2px;
}

ul.page-numbers a:hover,
ul.page-numbers a:focus,
ul.page-numbers a:active {
    background-color: #eee;
}

ul.page-numbers span.current {
    background-color: var(--accent-color);
    color: #fff;
}

/* HOME */
body.home {
    background-color: #fff;
}

body.home .site-content {
    margin: 79px 0 0;
    box-shadow: none;
}

body.home .hero:before {
    transform: scaleX(-1);
}

.hero__izquierda {
    min-height: calc(100vh - 79px);
}

.trabajos-adyacentes {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    margin: 2em 0;
}

.trabajos-adyacentes img {
    width: 14px;
    vertical-align: text-top;

}

/* === SISTEMA DE DISEÑO KS v1.1 === */
/* ============================================================
   kaosystem · sistema de diseño v1
   Un solo archivo. Primero tokens, luego componentes en el orden del brief.
   Prefijo de clase: ks-  ·  Mobile first  ·  Sin dependencias externas
   ============================================================ */

/* ---------- 4.1 TOKENS ------------------------------------ */
:root{
  /* v1.2 · redefinición cálida y fotográfica (26/08/2026), ver NOTAS_HOME.md.
     Mismos slots de token, mismos usos: solo cambian los valores. Nada de CDN (R3): las fuentes siguen en pila de sistema. */
  /* color · superficie */
  --color-superficie:#ffffff;
  --color-superficie-alt:#f5f5f5;
  --color-superficie-elevada:#ffffff;
  --color-superficie-oscura:#181818;
  /* color · texto */
  --color-texto:#181818;
  --color-texto-secundario:#5c5c5c;
  --color-texto-atenuado:#8a8a8a;
  --color-texto-inverso:#ffffff;
  /* color · borde */
  --color-borde:#e3e3e3;
  --color-borde-fuerte:#adadad;
  /* color · marca y estados */
  --color-marca:#d1592f;
  --color-marca-hover:#af4823;
  --color-marca-suave:#fbe7db;
  --color-enlace:#0f7a8c;
  --color-enlace-hover:#0b5f6d;
  --color-exito:#3f8f5f;
  --color-aviso:#b23b2c;
  --color-error:#b23b2c;
  --color-error-suave:#fbe6e2;
  /* color · estados de producto (decisión de diseño, ver nota en el prototipo) */
  --color-pro:#6d2fd6;          /* distintivo PRO: color nuevo, fuera de la paleta, por exigencia de la especificación */
  --color-pro-suave:#f0e9fd;
  --color-promo:#c81654;        /* label de promoción / descuento */
  --color-promo-suave:#fbe3ec;
  /* color · foco */
  --color-foco:#0f7a8c;
  /* v1.1 · tokens promovidos desde literales durante el porteo */
  --color-error-hover:#8f2e22;
  --color-telefono-hover:#000000;
  --color-whatsapp:#1f9d59;
  --color-whatsapp-hover:#17814a;
  --color-marca-oscura:#8a3c1e;
  --color-estrella:#e8a23a;
  --color-estrella-vacia:#e2e2e2;
  --color-esqueleto:#ececec;
  --color-pie-titulo:#b5b5b5;
  --color-pie-enlace:#e6e6e6;
  --halo-foco:rgba(15,122,140,.28);
  --velo-oscuro:rgba(24,24,24,.72);
  --velo-carga-claro:rgba(255,255,255,.45);
  --velo-carga-oscuro:rgba(24,24,24,.25);
  --velo-linea-clara:rgba(255,255,255,.18);
  --sombra-inversa:0 -2px 12px rgba(24,24,24,.14);
  /* tipografía — pila de sistema (R3: sin CDN). Rubik/Roboto se autohospedarán cuando se porte */
  --fuente-titular:'Georgia','Iowan Old Style',serif;
  --fuente-texto:'Roboto',system-ui,-apple-system,sans-serif;
  --peso-normal:400;
  --peso-medio:600;
  --peso-fuerte:700;
  --texto-xs:clamp(.6875rem,.68rem + .1vw,.75rem);
  --texto-sm:clamp(.8125rem,.8rem + .15vw,.875rem);
  --texto-md:clamp(.9375rem,.92rem + .2vw,1rem);
  --texto-lg:clamp(1.0625rem,1rem + .35vw,1.25rem);
  --texto-xl:clamp(1.25rem,1.15rem + .7vw,1.625rem);
  --texto-2xl:clamp(1.625rem,1.4rem + 1.4vw,2.5rem);
  --texto-3xl:clamp(2.1rem,1.7rem + 2.4vw,3.4rem);
  --linea-texto:1.6;
  --linea-titular:1.14;
  /* espaciado · base 4px */
  --esp-1:.25rem;--esp-2:.5rem;--esp-3:.75rem;--esp-4:1rem;--esp-5:1.5rem;--esp-6:2rem;--esp-7:3rem;--esp-8:4rem;
  /* radios */
  --radio-sm:4px;--radio-md:10px;--radio-lg:18px;--radio-full:999px;
  /* sombras */
  --sombra-1:0 1px 2px rgba(24,24,24,.08);
  --sombra-2:0 4px 16px rgba(24,24,24,.12);
  --sombra-3:0 12px 32px rgba(24,24,24,.18);
  /* otros */
  --contenedor:1200px;
  --z-sticky:20;--z-globo:40;--z-pantalla:60;
  --transicion:.16s ease;
}

:where(.ks-ambito) *,:where(.ks-ambito) *::before,:where(.ks-ambito) *::after{box-sizing:border-box}
.ks-ambito{font-family:var(--fuente-texto);font-size:var(--texto-md);line-height:var(--linea-texto);color:var(--color-texto);background:var(--color-superficie)}
:where(.ks-ambito) h1,:where(.ks-ambito) h2,:where(.ks-ambito) h3,:where(.ks-ambito) h4{font-family:var(--fuente-titular);line-height:var(--linea-titular);font-weight:var(--peso-medio);margin:0 0 var(--esp-3)}
:where(.ks-ambito) h1{font-size:var(--texto-2xl);font-weight:var(--peso-fuerte)}
:where(.ks-ambito) h2{font-size:var(--texto-xl)}
:where(.ks-ambito) h3{font-size:var(--texto-lg)}
:where(.ks-ambito) p{margin:0 0 var(--esp-3);text-wrap:pretty}
:where(.ks-ambito) img{max-width:100%;display:block}
:where(.ks-ambito) a{color:var(--color-enlace);text-decoration:underline;text-underline-offset:2px}
:where(.ks-ambito) a:hover{color:var(--color-enlace-hover)}
:where(.ks-ambito) :focus-visible{outline:3px solid var(--color-foco);outline-offset:2px;border-radius:var(--radio-sm)}
.ks-oculto{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.ks-icono{width:1.15em;height:1.15em;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ---------- 4.2 BOTONES Y ENLACES ------------------------- */
.ks-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--esp-2);font-family:var(--fuente-titular);font-weight:var(--peso-medio);font-size:var(--texto-md);line-height:1;padding:var(--esp-3) var(--esp-5);border:1.5px solid transparent;border-radius:var(--radio-md);background:var(--color-superficie-alt);color:var(--color-texto);cursor:pointer;text-decoration:none;transition:background var(--transicion),color var(--transicion),border-color var(--transicion)}
.ks-btn--primario{background:var(--color-marca);color:var(--color-texto-inverso)}
.ks-btn--primario:hover{background:var(--color-marca-hover);color:var(--color-texto-inverso)}
.ks-btn--secundario{background:var(--color-superficie);color:var(--color-texto);border-color:var(--color-borde-fuerte)}
.ks-btn--secundario:hover{border-color:var(--color-texto);background:var(--color-superficie-alt);color:var(--color-texto)}
.ks-btn--fantasma{background:transparent;color:var(--color-texto);border-color:transparent;text-decoration:underline}
.ks-btn--fantasma:hover{background:var(--color-superficie-alt);text-decoration:none;color:var(--color-texto)}
.ks-btn--destructivo{background:var(--color-error);color:var(--color-texto-inverso)}
.ks-btn--destructivo:hover{background:var(--color-error-hover);color:var(--color-texto-inverso)}
.ks-btn--telefono{background:var(--color-superficie-oscura);color:var(--color-texto-inverso)}
.ks-btn--telefono:hover{background:var(--color-telefono-hover);color:var(--color-texto-inverso)}
.ks-btn--whatsapp{background:var(--color-whatsapp);color:var(--color-texto-inverso)}
.ks-btn--whatsapp:hover{background:var(--color-whatsapp-hover);color:var(--color-texto-inverso)}
.ks-btn--formulario{background:var(--color-marca);color:var(--color-texto-inverso)}
.ks-btn--formulario:hover{background:var(--color-marca-hover);color:var(--color-texto-inverso)}
.ks-btn--web{background:var(--color-superficie);color:var(--color-texto);border-color:var(--color-borde-fuerte)}
.ks-btn--web:hover{border-color:var(--color-texto);color:var(--color-texto)}
.ks-btn--sm{font-size:var(--texto-sm);padding:var(--esp-2) var(--esp-3)}
.ks-btn--lg{font-size:var(--texto-lg);padding:var(--esp-4) var(--esp-6)}
.ks-btn--completo{width:100%}
.ks-btn:disabled,.ks-btn[aria-disabled=true]{background:var(--color-superficie-alt);color:var(--color-texto-atenuado);border-color:var(--color-borde);cursor:not-allowed}
.ks-btn:active{transform:translateY(1px)}
.ks-btn.is-cargando{pointer-events:none;color:transparent;position:relative}
.ks-btn.is-cargando::after{content:"";position:absolute;width:1.1em;height:1.1em;border:2px solid var(--velo-carga-claro);border-top-color:var(--color-texto-inverso);border-radius:var(--radio-full);animation:ks-giro .7s linear infinite}
.ks-btn--secundario.is-cargando::after,.ks-btn--web.is-cargando::after{border-color:var(--velo-carga-oscuro);border-top-color:var(--color-texto)}
@keyframes ks-giro{to{transform:rotate(360deg)}}
.ks-btn-grupo{display:flex;flex-wrap:wrap;gap:var(--esp-3)}
@media (max-width:47.9375em){.ks-btn-grupo--apilado{flex-direction:column}.ks-btn-grupo--apilado .ks-btn{width:100%}}
.ks-tel__revelado{display:none;flex-direction:column;align-items:flex-start;gap:var(--esp-1);padding:var(--esp-3) var(--esp-4);border:1.5px solid var(--color-superficie-oscura);border-radius:var(--radio-md);background:var(--color-superficie)}
.ks-tel.is-revelado .ks-tel__revelado{display:flex}
.ks-tel.is-revelado .ks-btn{display:none}
.ks-tel__numero{font-family:var(--fuente-titular);font-weight:var(--peso-fuerte);font-size:var(--texto-lg);color:var(--color-texto);text-decoration:none}
.ks-tel__nota{font-size:var(--texto-xs);color:var(--color-texto-secundario)}

/* ---------- 4.3 TARJETA DE PROFESIONAL -------------------- */
.ks-tarjeta-profesional{display:flex;flex-direction:column;gap:var(--esp-3);padding:var(--esp-4);background:var(--color-superficie-elevada);border:1px solid var(--color-borde);border-radius:var(--radio-lg);box-shadow:var(--sombra-1);position:relative}
.ks-tarjeta-profesional--pro{border-color:var(--color-pro);box-shadow:var(--sombra-2)}
.ks-tarjeta-profesional__cabecera{display:flex;gap:var(--esp-3);align-items:flex-start}
.ks-tarjeta-profesional__avatar{width:56px;height:56px;border-radius:var(--radio-full);object-fit:cover;background:var(--color-superficie-alt);flex:0 0 auto}
.ks-tarjeta-profesional__logo{width:56px;height:56px;border-radius:var(--radio-sm);object-fit:contain;background:var(--color-superficie-alt);border:1px solid var(--color-borde);flex:0 0 auto}
.ks-tarjeta-profesional__id{min-width:0;flex:1}
.ks-tarjeta-profesional__nombre{font-family:var(--fuente-titular);font-size:var(--texto-lg);font-weight:var(--peso-medio);margin:0 0 var(--esp-1)}
.ks-tarjeta-profesional__nombre a{color:var(--color-texto);text-decoration:none}
.ks-tarjeta-profesional__nombre a:hover{color:var(--color-marca-hover);text-decoration:underline}
.ks-tarjeta-profesional__categoria{font-size:var(--texto-sm);color:var(--color-texto-secundario)}
.ks-tarjeta-profesional__localidad{font-size:var(--texto-sm);color:var(--color-texto-secundario);display:flex;align-items:center;gap:var(--esp-1)}
.ks-tarjeta-profesional__marcas{display:flex;flex-direction:column;align-items:flex-end;gap:var(--esp-1);flex:0 0 auto}
.ks-tarjeta-profesional__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--esp-2) var(--esp-4);font-size:var(--texto-sm);color:var(--color-texto-secundario)}
.ks-precio{font-family:var(--fuente-titular);font-weight:var(--peso-medio);color:var(--color-texto)}
.ks-precio span{color:var(--color-borde-fuerte);font-weight:var(--peso-normal)}
.ks-tarjeta-profesional__miniaturas{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--esp-1)}
.ks-tarjeta-profesional__miniaturas img{aspect-ratio:1;object-fit:cover;border-radius:var(--radio-sm);background:var(--color-superficie-alt)}
.ks-tarjeta-profesional__acciones{display:flex;gap:var(--esp-2);flex-wrap:wrap}
.ks-tarjeta-profesional__nota-gratuita{font-size:var(--texto-xs);color:var(--color-texto-atenuado)}
@media (min-width:48em){
  .ks-tarjeta-profesional--horizontal{display:grid;grid-template-columns:auto 1fr 220px;gap:var(--esp-5);align-items:start}
  .ks-tarjeta-profesional--horizontal .ks-tarjeta-profesional__cabecera{grid-column:1/3}
  .ks-tarjeta-profesional--horizontal .ks-tarjeta-profesional__miniaturas{grid-column:3;grid-row:1/3;grid-template-columns:repeat(3,1fr)}
  .ks-tarjeta-profesional--horizontal .ks-tarjeta-profesional__meta{grid-column:1/3}
}
.ks-rejilla-tarjetas{display:grid;gap:var(--esp-4);grid-template-columns:1fr}
@media (min-width:48em){.ks-rejilla-tarjetas{grid-template-columns:repeat(2,1fr)}}
@media (min-width:64em){.ks-rejilla-tarjetas{grid-template-columns:repeat(3,1fr)}}

/* ---------- 4.4 TARJETA DE TRABAJO ------------------------ */
.ks-rejilla-trabajos{display:grid;grid-template-columns:repeat(2,1fr);gap:0}
@media (min-width:48em){.ks-rejilla-trabajos{grid-template-columns:repeat(3,1fr)}}
@media (min-width:64em){.ks-rejilla-trabajos{grid-template-columns:repeat(4,1fr)}}
@media (min-width:90em){.ks-rejilla-trabajos{grid-template-columns:repeat(5,1fr)}}
.ks-tarjeta-trabajo{display:block;text-decoration:none;color:var(--color-texto)}
.ks-tarjeta-trabajo__marco{position:relative;overflow:hidden;border-radius:var(--radio-lg)}
.ks-tarjeta-trabajo__marco img{aspect-ratio:4/5;object-fit:cover;width:100%;transition:transform var(--transicion)}
.ks-tarjeta-trabajo:hover .ks-tarjeta-trabajo__marco img{transform:scale(1.03)}
.ks-tarjeta-trabajo__video{position:absolute;top:var(--esp-2);right:var(--esp-2);width:28px;height:28px;display:grid;place-items:center;border-radius:var(--radio-full);background:var(--velo-oscuro);color:var(--color-texto-inverso)}
.ks-tarjeta-trabajo__nombre{font-size:var(--texto-sm);padding:var(--esp-2) var(--esp-2) var(--esp-4);color:var(--color-texto-secundario)}
.ks-tarjeta-trabajo--esqueleto .ks-tarjeta-trabajo__marco{aspect-ratio:4/5;background:linear-gradient(90deg,var(--color-superficie-alt) 25%,var(--color-esqueleto) 50%,var(--color-superficie-alt) 75%);background-size:300% 100%;animation:ks-esqueleto 1.3s infinite}
.ks-tarjeta-trabajo--esqueleto .ks-tarjeta-trabajo__nombre{height:1em;margin:var(--esp-2);background:var(--color-superficie-alt);border-radius:var(--radio-sm);padding:0}
@keyframes ks-esqueleto{from{background-position:100% 0}to{background-position:-100% 0}}
.ks-tarjeta-trabajo--rota .ks-tarjeta-trabajo__marco{aspect-ratio:4/5;display:grid;place-items:center;background:var(--color-superficie-alt);border:1px dashed var(--color-borde-fuerte);color:var(--color-texto-atenuado);font-size:var(--texto-xs);text-align:center;padding:var(--esp-3)}

/* ---------- 4.5 BLOQUE DE CONTACTO ------------------------ */

:root{ --sombra-inversa:0 -2px 12px rgba(31,64,77,.14); }

@media (min-width:64em){.ks-contacto--sticky{position:sticky;top:var(--esp-4)}}
.ks-contacto-barra{position:absolute;left:0;right:0;bottom:0;display:flex;gap:var(--esp-2);padding:var(--esp-3);background:var(--color-superficie);border-top:1px solid var(--color-borde);box-shadow:var(--sombra-inversa);z-index:var(--z-sticky)}
.ks-contacto-barra .ks-btn{flex:1;padding-inline:var(--esp-2)}
.ks-contacto-pantalla{position:absolute;inset:0;background:var(--color-superficie);z-index:var(--z-pantalla);padding:var(--esp-4);display:none;overflow:auto}
.ks-contacto-pantalla.is-abierta{display:block}
.ks-contacto-pantalla__cerrar{position:absolute;top:var(--esp-3);right:var(--esp-3);width:40px;height:40px;border-radius:var(--radio-full);border:1px solid var(--color-borde);background:var(--color-superficie);font-size:var(--texto-lg);line-height:1;cursor:pointer;color:var(--color-texto)}
.ks-contacto{border:1px solid var(--color-borde);border-radius:var(--radio-lg);padding:var(--esp-4);background:var(--color-superficie-elevada);box-shadow:var(--sombra-2);display:flex;flex-direction:column;gap:var(--esp-3)}
.ks-contacto--pro{border-color:var(--color-pro)}
.ks-contacto__titulo{font-size:var(--texto-lg);margin:0}
.ks-contacto__nota{font-size:var(--texto-xs);color:var(--color-texto-secundario);margin:0}

/* ---------- 4.6 FORMULARIOS ------------------------------- */
.ks-form{display:grid;gap:var(--esp-4)}
.ks-campo{display:grid;gap:var(--esp-1)}
.ks-campo__etiqueta{font-family:var(--fuente-titular);font-size:var(--texto-sm);font-weight:var(--peso-medio);display:flex;align-items:center;gap:var(--esp-2)}
.ks-campo__control{width:100%;font:inherit;font-size:var(--texto-md);color:var(--color-texto);padding:var(--esp-3);border:1.5px solid var(--color-borde);border-radius:var(--radio-md);background:var(--color-superficie);transition:border-color var(--transicion)}
.ks-campo__control::placeholder{color:var(--color-texto-atenuado)}
.ks-campo__control:hover{border-color:var(--color-borde-fuerte)}
.ks-campo__control:focus,.ks-campo__control:focus-visible{border-color:var(--color-foco);outline:3px solid var(--halo-foco);outline-offset:0;box-shadow:0 0 0 3px var(--halo-foco)}
.ks-campo__control:disabled{background:var(--color-superficie-alt);color:var(--color-texto-atenuado);cursor:not-allowed}
textarea.ks-campo__control{min-height:120px;resize:vertical}
.ks-campo__ayuda{font-size:var(--texto-xs);color:var(--color-texto-secundario)}
.ks-campo--error .ks-campo__control{border-color:var(--color-error);background:var(--color-error-suave)}
.ks-campo__error{font-size:var(--texto-xs);color:var(--color-error);font-weight:var(--peso-medio);display:flex;align-items:center;gap:var(--esp-1)}
.ks-check{display:flex;gap:var(--esp-3);align-items:flex-start;font-size:var(--texto-sm)}
.ks-check input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--color-marca);flex:0 0 auto}
.ks-editor{border:1.5px solid var(--color-borde);border-radius:var(--radio-md);overflow:hidden}
.ks-editor__barra{display:flex;gap:var(--esp-1);padding:var(--esp-2);border-bottom:1px solid var(--color-borde);background:var(--color-superficie-alt)}
.ks-editor__boton{width:32px;height:32px;border:1px solid transparent;border-radius:var(--radio-sm);background:transparent;cursor:pointer;font-family:var(--fuente-titular);color:var(--color-texto)}
.ks-editor__boton:hover{background:var(--color-superficie);border-color:var(--color-borde)}
.ks-editor__area{padding:var(--esp-3);min-height:120px;font-size:var(--texto-md)}
.ks-subida{border:2px dashed var(--color-borde-fuerte);border-radius:var(--radio-md);padding:var(--esp-5);text-align:center;color:var(--color-texto-secundario);font-size:var(--texto-sm)}
.ks-info{position:relative;display:inline-flex}
.ks-info__boton{width:20px;height:20px;border-radius:var(--radio-full);border:1.5px solid var(--color-borde-fuerte);background:var(--color-superficie);color:var(--color-texto-secundario);font-family:var(--fuente-titular);font-size:var(--texto-xs);line-height:1;cursor:pointer;display:grid;place-items:center}
.ks-info__boton:hover{border-color:var(--color-texto);color:var(--color-texto)}
.ks-globo{position:absolute;bottom:calc(100% + 8px);left:-8px;width:min(280px,72vw);padding:var(--esp-3) var(--esp-4) var(--esp-3) var(--esp-3);background:var(--color-superficie-oscura);color:var(--color-texto-inverso);border-radius:var(--radio-md);box-shadow:var(--sombra-3);font-size:var(--texto-xs);line-height:1.5;z-index:var(--z-globo);display:none}
.ks-info.is-abierto .ks-globo,.ks-info:hover .ks-globo{display:block}
.ks-globo__cerrar{position:absolute;top:2px;right:4px;background:none;border:0;color:inherit;font-size:var(--texto-sm);cursor:pointer;line-height:1}
.ks-estrellas-entrada{display:flex;gap:var(--esp-1)}
.ks-estrellas-entrada button{background:none;border:0;padding:2px;cursor:pointer;color:var(--color-borde-fuerte)}
.ks-estrellas-entrada button .ks-icono{width:28px;height:28px}
.ks-estrellas-entrada button[aria-pressed=true]{color:var(--color-estrella)}

/* ---------- 4.7 FILTROS Y BUSCADOR ------------------------ */
.ks-buscador{display:flex;gap:var(--esp-2)}
.ks-buscador .ks-campo__control{flex:1}
.ks-chips{display:flex;flex-wrap:wrap;gap:var(--esp-2);align-items:center}
.ks-chip{display:inline-flex;align-items:center;gap:var(--esp-2);padding:var(--esp-2) var(--esp-3);border:1px solid var(--color-borde);border-radius:var(--radio-full);background:var(--color-superficie-alt);font-size:var(--texto-sm);color:var(--color-texto);text-decoration:none}
.ks-chip--filtro{background:var(--color-marca-suave);border-color:var(--color-marca)}
.ks-chip__quitar{background:none;border:0;cursor:pointer;color:var(--color-texto-secundario);font-size:var(--texto-md);line-height:1;padding:0}
.ks-chip__quitar:hover{color:var(--color-error)}
.ks-chips__borrar{background:none;border:0;font-size:var(--texto-sm);color:var(--color-enlace);text-decoration:underline;cursor:pointer;font-family:inherit}
.ks-autocompletado{position:relative}
.ks-autocompletado__lista{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--color-superficie);border:1px solid var(--color-borde);border-radius:var(--radio-md);box-shadow:var(--sombra-2);list-style:none;margin:0;padding:var(--esp-1);z-index:var(--z-globo);max-height:240px;overflow:auto}
.ks-autocompletado__item{display:flex;justify-content:space-between;gap:var(--esp-3);padding:var(--esp-2) var(--esp-3);border-radius:var(--radio-sm);font-size:var(--texto-sm);cursor:pointer}
.ks-autocompletado__item:hover,.ks-autocompletado__item[aria-selected=true]{background:var(--color-marca-suave)}
.ks-autocompletado__item span{color:var(--color-texto-atenuado)}
.ks-autocompletado__estado{padding:var(--esp-3);font-size:var(--texto-sm);color:var(--color-texto-secundario)}
.ks-filtros{display:grid;gap:var(--esp-3)}
@media (min-width:48em){.ks-filtros--fila{grid-template-columns:repeat(3,1fr)}}
@media (min-width:64em){.ks-filtros--fila{grid-template-columns:repeat(4,1fr)}}
.ks-panel-filtros{position:absolute;inset:0;background:var(--color-superficie);z-index:var(--z-pantalla);display:none;flex-direction:column}
.ks-panel-filtros.is-abierto{display:flex}
.ks-panel-filtros__cabecera,.ks-panel-filtros__pie{display:flex;align-items:center;justify-content:space-between;gap:var(--esp-3);padding:var(--esp-3) var(--esp-4);border-bottom:1px solid var(--color-borde)}
.ks-panel-filtros__pie{border-bottom:0;border-top:1px solid var(--color-borde);margin-top:auto}
.ks-panel-filtros__cuerpo{padding:var(--esp-4);overflow:auto;display:grid;gap:var(--esp-4)}
.ks-orden{display:flex;align-items:center;gap:var(--esp-2);font-size:var(--texto-sm);color:var(--color-texto-secundario)}
.ks-orden select{font:inherit;font-size:var(--texto-sm);padding:var(--esp-2) var(--esp-3);border:1.5px solid var(--color-borde);border-radius:var(--radio-md);background:var(--color-superficie);color:var(--color-texto)}

/* ---------- 4.8 SELLOS Y DISTINTIVOS ---------------------- */
.ks-sellos{display:flex;flex-wrap:wrap;gap:var(--esp-2);align-items:center}
.ks-sello{display:inline-flex;align-items:center;gap:var(--esp-1);padding:var(--esp-1) var(--esp-2);border-radius:var(--radio-sm);font-family:var(--fuente-titular);font-size:var(--texto-xs);font-weight:var(--peso-medio);letter-spacing:.02em;border:1px solid var(--color-borde);background:var(--color-superficie-alt);color:var(--color-texto-secundario);cursor:help}
.ks-sello--pro{background:var(--color-pro);border-color:var(--color-pro);color:var(--color-texto-inverso);text-transform:uppercase;letter-spacing:.06em;padding-inline:var(--esp-2)}
.ks-sello--antiguedad{background:var(--color-superficie);border-color:var(--color-borde-fuerte)}
.ks-sello--confianza{background:var(--color-marca-suave);border-color:var(--color-marca);color:var(--color-marca-oscura)}
.ks-sello--verificada{background:var(--color-superficie);border-color:var(--color-marca);color:var(--color-marca-oscura)}
.ks-sellos__mas{background:none;border:1px dashed var(--color-borde-fuerte);border-radius:var(--radio-sm);font-family:var(--fuente-titular);font-size:var(--texto-xs);padding:var(--esp-1) var(--esp-2);cursor:pointer;color:var(--color-texto-secundario)}
.ks-sello[hidden]{display:none}
.ks-sellos.is-expandido .ks-sello[hidden]{display:inline-flex}
.ks-promo{display:inline-flex;align-items:center;gap:var(--esp-1);padding:var(--esp-1) var(--esp-2);border-radius:var(--radio-sm);background:var(--color-promo);color:var(--color-texto-inverso);font-family:var(--fuente-titular);font-size:var(--texto-xs);font-weight:var(--peso-fuerte);text-transform:uppercase;letter-spacing:.04em}

/* ---------- 4.9 NAVEGACIÓN -------------------------------- */
.ks-cabecera{display:flex;align-items:center;gap:var(--esp-4);padding:var(--esp-3) var(--esp-4);background:var(--color-superficie);border-bottom:1px solid var(--color-borde)}
.ks-cabecera__logo{font-family:var(--fuente-titular);font-weight:var(--peso-fuerte);font-size:var(--texto-lg);color:var(--color-texto);text-decoration:none;letter-spacing:-.02em}
.ks-cabecera__buscador{flex:1;display:none}
@media (min-width:48em){.ks-cabecera__buscador{display:flex}}
.ks-cabecera__acciones{display:flex;align-items:center;gap:var(--esp-2);margin-left:auto}
.ks-nav{display:none;gap:var(--esp-4);font-family:var(--fuente-titular);font-size:var(--texto-sm)}
@media (min-width:64em){.ks-nav{display:flex}}
.ks-nav__enlace{color:var(--color-texto);text-decoration:none;padding:var(--esp-2) 0;border-bottom:2px solid transparent}
.ks-nav__enlace:hover,.ks-nav__enlace[aria-expanded=true]{color:var(--color-marca-hover);border-color:var(--color-marca)}
.ks-mega{border:1px solid var(--color-borde);border-top:0;background:var(--color-superficie);box-shadow:var(--sombra-2);padding:var(--esp-5);display:grid;gap:var(--esp-5);grid-template-columns:1fr}
@media (min-width:64em){.ks-mega{grid-template-columns:repeat(3,1fr)}}
.ks-mega__titulo{font-family:var(--fuente-titular);font-size:var(--texto-sm);font-weight:var(--peso-medio);text-transform:uppercase;letter-spacing:.06em;color:var(--color-texto-atenuado);margin:0 0 var(--esp-3)}
.ks-mega__lista{list-style:none;margin:0;padding:0;display:grid;gap:var(--esp-2);font-size:var(--texto-sm)}
.ks-mega__lista a{color:var(--color-texto);text-decoration:none}
.ks-mega__lista a:hover{color:var(--color-marca-hover);text-decoration:underline}
.ks-menu-movil{list-style:none;margin:0;padding:0;border:1px solid var(--color-borde);border-radius:var(--radio-md);overflow:hidden}
.ks-menu-movil li+li{border-top:1px solid var(--color-borde)}
.ks-menu-movil a{display:flex;justify-content:space-between;align-items:center;gap:var(--esp-3);padding:var(--esp-4);color:var(--color-texto);text-decoration:none;font-family:var(--fuente-titular);font-size:var(--texto-md)}
.ks-menu-movil a:hover{background:var(--color-superficie-alt)}
.ks-migas{font-size:var(--texto-xs);color:var(--color-texto-atenuado);display:flex;gap:var(--esp-2);align-items:center;overflow-x:auto;white-space:nowrap;padding-bottom:var(--esp-1);-webkit-overflow-scrolling:touch}
.ks-migas ol{list-style:none;display:flex;gap:var(--esp-2);align-items:center;margin:0;padding:0}
.ks-migas li{display:flex;gap:var(--esp-2);align-items:center}
.ks-migas a{color:var(--color-texto-atenuado);text-decoration:none}
.ks-migas a:hover{color:var(--color-texto-secundario);text-decoration:underline}
.ks-migas [aria-current=page]{font-weight:var(--peso-fuerte);color:var(--color-texto-secundario)}
.ks-pie{background:var(--color-superficie-oscura);color:var(--color-texto-inverso);padding:var(--esp-6) var(--esp-4)}
.ks-pie__cols{display:grid;gap:var(--esp-5);grid-template-columns:1fr}
@media (min-width:48em){.ks-pie__cols{grid-template-columns:repeat(4,1fr)}}
.ks-pie h3{font-size:var(--texto-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--color-pie-titulo)}
.ks-pie ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--esp-2);font-size:var(--texto-sm)}
.ks-pie a{color:var(--color-pie-enlace);text-decoration:none}
.ks-pie a:hover{color:var(--color-texto-inverso);text-decoration:underline}
.ks-pie__legal{margin-top:var(--esp-5);padding-top:var(--esp-4);border-top:1px solid var(--velo-linea-clara);font-size:var(--texto-xs);color:var(--color-pie-titulo);display:flex;flex-wrap:wrap;gap:var(--esp-4);justify-content:space-between}

/* ---------- 4.10 ENLAZADO CRUZADO ------------------------- */
.ks-enlaces-cruzados{border-top:1px solid var(--color-borde);padding-top:var(--esp-4)}
.ks-enlaces-cruzados__titulo{font-size:var(--texto-lg);margin-bottom:var(--esp-3)}
.ks-enlaces-cruzados__lista{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--esp-2)}
.ks-enlaces-cruzados--cajas .ks-enlaces-cruzados__lista{display:grid;grid-template-columns:1fr;gap:var(--esp-2)}
@media (min-width:48em){.ks-enlaces-cruzados--cajas .ks-enlaces-cruzados__lista{grid-template-columns:repeat(2,1fr)}}
@media (min-width:64em){.ks-enlaces-cruzados--cajas .ks-enlaces-cruzados__lista{grid-template-columns:repeat(3,1fr)}}
.ks-enlaces-cruzados__caja{display:flex;justify-content:space-between;gap:var(--esp-3);padding:var(--esp-3) var(--esp-4);border:1px solid var(--color-borde);border-radius:var(--radio-md);color:var(--color-texto);text-decoration:none;font-size:var(--texto-sm);background:var(--color-superficie)}
.ks-enlaces-cruzados__caja:hover{border-color:var(--color-marca);background:var(--color-marca-suave);color:var(--color-texto)}
.ks-enlaces-cruzados__caja span{color:var(--color-texto-atenuado)}

/* ---------- 4.11 ESTRELLAS Y VALORACIONES ----------------- */
.ks-estrellas{display:inline-flex;align-items:center;gap:var(--esp-2)}
.ks-estrellas__iconos{position:relative;display:inline-block;line-height:0;color:var(--color-estrella-vacia)}
.ks-estrellas__relleno{position:absolute;top:0;left:0;overflow:hidden;white-space:nowrap;color:var(--color-estrella)}
.ks-estrellas__iconos .ks-icono{width:15px;height:15px;fill:currentColor;stroke:none}
.ks-estrellas--grande .ks-icono{width:24px;height:24px}
.ks-estrellas__nota{font-family:var(--fuente-titular);font-weight:var(--peso-medio);font-size:var(--texto-sm)}
.ks-estrellas--grande .ks-estrellas__nota{font-size:var(--texto-lg)}
.ks-estrellas__conteo{font-size:var(--texto-sm);color:var(--color-texto-secundario)}
.ks-resumen-valoraciones{display:grid;gap:var(--esp-4);align-items:center;grid-template-columns:1fr;border:1px solid var(--color-borde);border-radius:var(--radio-lg);padding:var(--esp-4)}
@media (min-width:48em){.ks-resumen-valoraciones{grid-template-columns:180px 1fr}}
.ks-resumen-valoraciones__media{font-family:var(--fuente-titular);font-size:var(--texto-2xl);font-weight:var(--peso-fuerte);line-height:1}
.ks-resumen-valoraciones__barras{display:grid;gap:var(--esp-2)}
.ks-barra{display:grid;grid-template-columns:2.5rem 1fr 2.5rem;gap:var(--esp-3);align-items:center;font-size:var(--texto-xs);color:var(--color-texto-secundario)}
.ks-barra__pista{height:8px;background:var(--color-superficie-alt);border-radius:var(--radio-full);overflow:hidden}
.ks-barra__valor{height:100%;background:var(--color-estrella)}
.ks-opinion{border:1px solid var(--color-borde);border-radius:var(--radio-lg);padding:var(--esp-4);display:grid;gap:var(--esp-3)}
.ks-opinion__cabecera{display:flex;flex-wrap:wrap;gap:var(--esp-2) var(--esp-4);align-items:center}
.ks-opinion__autor{font-family:var(--fuente-titular);font-weight:var(--peso-medio)}
.ks-opinion__fecha{font-size:var(--texto-xs);color:var(--color-texto-atenuado)}
.ks-opinion__titulo{font-size:var(--texto-md);margin:0}
.ks-opinion__texto{margin:0;color:var(--color-texto-secundario)}
.ks-opinion__adjuntos{display:flex;gap:var(--esp-2)}
.ks-opinion__adjuntos img{width:88px;height:88px;object-fit:cover;border-radius:var(--radio-md);background:var(--color-superficie-alt)}
.ks-opinion__datos{display:flex;flex-wrap:wrap;gap:var(--esp-4);font-size:var(--texto-xs);color:var(--color-texto-secundario)}
.ks-respuesta{margin-left:var(--esp-4);border-left:3px solid var(--color-marca);padding:var(--esp-3) var(--esp-4);background:var(--color-superficie-alt);border-radius:0 var(--radio-md) var(--radio-md) 0}
.ks-respuesta__autor{font-family:var(--fuente-titular);font-weight:var(--peso-medio);font-size:var(--texto-sm)}
.ks-respuesta p{margin:var(--esp-1) 0 0;font-size:var(--texto-sm);color:var(--color-texto-secundario)}
.ks-vacio{border:1px dashed var(--color-borde-fuerte);border-radius:var(--radio-lg);padding:var(--esp-5);text-align:center;color:var(--color-texto-secundario);font-size:var(--texto-sm)}
.ks-aviso-resenas{font-size:var(--texto-xs);color:var(--color-texto-secundario);background:var(--color-superficie-alt);border-left:3px solid var(--color-borde-fuerte);padding:var(--esp-3) var(--esp-4);border-radius:0 var(--radio-md) var(--radio-md) 0}

/* ---------- 4.12 PAGINACIÓN ------------------------------- */
.ks-paginacion{display:flex;flex-wrap:wrap;gap:var(--esp-2);align-items:center;justify-content:center;font-family:var(--fuente-titular);font-size:var(--texto-sm)}
.ks-paginacion__enlace{display:grid;place-items:center;min-width:40px;height:40px;padding:0 var(--esp-3);border:1px solid var(--color-borde);border-radius:var(--radio-md);color:var(--color-texto);text-decoration:none;background:var(--color-superficie)}
.ks-paginacion__enlace:hover{border-color:var(--color-marca);background:var(--color-marca-suave);color:var(--color-texto)}
.ks-paginacion__enlace[aria-current=page]{background:var(--color-superficie-oscura);border-color:var(--color-superficie-oscura);color:var(--color-texto-inverso)}
.ks-paginacion__puntos{color:var(--color-texto-atenuado);padding:0 var(--esp-1)}
.ks-paginacion__enlace--inactivo{color:var(--color-texto-atenuado);border-style:dashed;pointer-events:none}

/* ---------- utilidades mínimas del sistema ---------------- */
.ks-contenedor{max-width:var(--contenedor);margin:0 auto;padding-inline:var(--esp-4)}
.ks-pila{display:grid;gap:var(--esp-4)}
.ks-compartir{display:inline-flex;align-items:center;gap:var(--esp-2);padding:var(--esp-2) var(--esp-3);border-radius:var(--radio-full);border:1px solid var(--color-borde);background:var(--color-superficie);box-shadow:var(--sombra-2);font-size:var(--texto-sm);font-family:var(--fuente-titular);cursor:pointer;color:var(--color-texto)}
/* === FIN SISTEMA DE DISEÑO KS v1 === */

/* --- Correcciones del porteo (no venían en la entrega v1) ---
   Sin ellas la página desborda en horizontal a 360 px: medido 402 px de
   scrollWidth sobre un viewport de 360. Cuatro contenedores flex sin wrap.
   Reportado a Claude Design para incorporarlo a la fuente en v1.1. */
.ks-cabecera{flex-wrap:wrap}
.ks-campo__etiqueta{flex-wrap:wrap}
.ks-check{flex-wrap:wrap}
.ks-estrellas-entrada{flex-wrap:wrap}
/* --- fin correcciones del porteo --- */

/* === FICHA DEL PROFESIONAL · extensiones del sistema v1.1 (23/08/2026) ===
   Solo piezas nuevas. Nada de style.css se redefine. Todo vive dentro de .ks-ambito.
   Los controles del prototipo (.ks-demo) NO se portean. */
:root{
  --ficha-aside:340px;
  --ficha-anclas-alto:52px;
  --color-abierto:#00b380;
  --color-cerrado:#8a979b;
  --color-anuncio:#eef2f3;
  --velo-foto:rgba(31,64,77,.55);
}
.ks-ambito{font-family:var(--fuente-texto);color:var(--color-texto)}
.ks-ficha{display:grid;gap:var(--esp-5);align-items:start;padding-bottom:calc(var(--esp-8) + 56px)}
@media (min-width:64em){.ks-ficha{grid-template-columns:minmax(0,1fr) var(--ficha-aside);padding-bottom:var(--esp-8)}.ks-ficha__principal{min-width:0}}
.ks-ficha__principal{display:grid;gap:var(--esp-6);min-width:0}

/* --- cabecera de la ficha (1.1–1.6, 1.17) --- */
.ks-ficha-cabecera{display:grid;gap:var(--esp-3);padding-top:var(--esp-4)}
.ks-ficha-cabecera__id{display:flex;flex-wrap:wrap;gap:var(--esp-3);align-items:flex-start}
.ks-ficha-cabecera__logo{width:72px;height:72px;border-radius:var(--radio-md);object-fit:cover;border:1px solid var(--color-borde);background:var(--color-superficie-alt);flex:0 0 auto}
.ks-ficha-cabecera__texto{min-width:0;flex:1 1 12rem;display:grid;gap:var(--esp-1)}
.ks-ficha-cabecera h1{margin:0}
.ks-ficha-cabecera__titular{font-size:var(--texto-md);color:var(--color-texto-secundario);margin:0}
.ks-ficha-cabecera__linea{display:flex;flex-wrap:wrap;align-items:center;gap:var(--esp-2) var(--esp-4);font-size:var(--texto-sm);color:var(--color-texto-secundario)}
.ks-ficha-cabecera__linea a{color:inherit}
.ks-ficha-cabecera__acciones{display:flex;flex-wrap:wrap;gap:var(--esp-2);align-items:center}
.ks-ficha-cabecera .ks-sello,.ks-ficha-cabecera .ks-sellos__mas{white-space:nowrap}
.ks-idiomas{display:flex;flex-wrap:wrap;gap:var(--esp-2);list-style:none;margin:0;padding:0;font-size:var(--texto-sm);color:var(--color-texto-secundario)}
.ks-idiomas li{display:flex;align-items:center;gap:var(--esp-1)}
.ks-idiomas li+li::before{content:"·";color:var(--color-borde-fuerte)}

/* --- barra de anclas --- */
.ks-anclas{position:sticky;top:0;z-index:var(--z-sticky);display:flex;gap:var(--esp-1);overflow-x:auto;background:var(--color-superficie);border-block:1px solid var(--color-borde);margin-block:var(--esp-4);padding:var(--esp-1) 0;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.ks-anclas::-webkit-scrollbar{display:none}
.ks-anclas__enlace{flex:0 0 auto;padding:var(--esp-2) var(--esp-3);font-family:var(--fuente-titular);font-size:var(--texto-sm);color:var(--color-texto-secundario);text-decoration:none;border-radius:var(--radio-md);white-space:nowrap}
.ks-anclas__enlace:hover{background:var(--color-superficie-alt);color:var(--color-texto)}
.ks-anclas__enlace.is-activo{background:var(--color-marca-suave);color:var(--color-marca-oscura)}

/* --- sección genérica --- */
.ks-seccion{display:grid;gap:var(--esp-4);scroll-margin-top:calc(var(--ficha-anclas-alto) + var(--esp-4))}
.ks-seccion__cabecera{display:flex;flex-wrap:wrap;gap:var(--esp-2) var(--esp-4);align-items:baseline;justify-content:space-between}
.ks-seccion__cabecera h2{margin:0}
.ks-seccion__nota{font-size:var(--texto-sm);color:var(--color-texto-secundario);margin:0}

/* --- bio con leer más (1.5) --- */
.ks-bio{max-width:68ch;display:grid;gap:var(--esp-2);justify-items:start}
.ks-bio__cuerpo{position:relative;overflow:hidden}
.ks-bio.is-recortado .ks-bio__cuerpo{max-height:11.5em}
.ks-bio.is-recortado .ks-bio__cuerpo::after{content:"";position:absolute;inset:auto 0 0;height:4em;background:linear-gradient(to bottom,transparent,var(--color-superficie))}
.ks-bio__mas{background:none;border:0;padding:0;font-family:var(--fuente-titular);font-size:var(--texto-sm);font-weight:var(--peso-medio);color:var(--color-enlace);cursor:pointer;text-decoration:underline}
.ks-bio__mas:hover{color:var(--color-enlace-hover)}

/* --- vídeo (1.10) --- */
.ks-video{margin:0;display:grid;gap:var(--esp-2)}
.ks-video__marco{position:relative;aspect-ratio:16/9;border-radius:var(--radio-lg);overflow:hidden;background:var(--color-superficie-alt)}
.ks-video__marco img{width:100%;height:100%;object-fit:cover}
.ks-video__play{position:absolute;inset:0;display:grid;place-items:center;border:0;background:var(--velo-foto);color:var(--color-texto-inverso);cursor:pointer}
.ks-video__play .ks-icono{width:56px;height:56px}
.ks-video figcaption{font-size:var(--texto-xs);color:var(--color-texto-secundario)}

/* --- datos prácticos (1.11, 1.12, 1.14, 1.27, 1.32, 1.33) --- */
.ks-datos{display:grid;gap:var(--esp-4);border:1px solid var(--color-borde);border-radius:var(--radio-lg);padding:var(--esp-4)}
@media (min-width:48em){.ks-datos{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ks-dato{display:grid;gap:var(--esp-1);min-width:0}
.ks-dato__clave{display:flex;align-items:center;gap:var(--esp-2);font-family:var(--fuente-titular);font-size:var(--texto-xs);font-weight:var(--peso-medio);text-transform:uppercase;letter-spacing:.06em;color:var(--color-texto-atenuado)}
.ks-dato__valor{font-size:var(--texto-md);margin:0}
.ks-dato--ancho{grid-column:1/-1}
.ks-precio-escala{display:flex;flex-wrap:wrap;align-items:center;gap:var(--esp-2)}
.ks-precio-escala__tramo{font-family:var(--fuente-titular);font-size:var(--texto-lg);font-weight:var(--peso-medio);color:var(--color-borde-fuerte)}
.ks-precio-escala__tramo.is-activo{color:var(--color-texto)}
.ks-horario{width:100%;border-collapse:collapse;font-size:var(--texto-sm)}
.ks-horario th,.ks-horario td{text-align:left;padding:var(--esp-2) 0;border-bottom:1px solid var(--color-borde);font-weight:var(--peso-normal)}
.ks-horario th{font-family:var(--fuente-titular);color:var(--color-texto-secundario)}
.ks-horario tr:last-child th,.ks-horario tr:last-child td{border-bottom:0}
.ks-horario td{text-align:right;color:var(--color-texto-secundario);font-variant-numeric:tabular-nums}
.ks-horario tr.is-hoy th,.ks-horario tr.is-hoy td{font-weight:var(--peso-medio);color:var(--color-texto)}
.ks-estado-apertura{display:inline-flex;align-items:center;gap:var(--esp-2);font-family:var(--fuente-titular);font-size:var(--texto-sm);font-weight:var(--peso-medio);color:var(--color-marca-oscura)}
.ks-estado-apertura::before{content:"";width:8px;height:8px;border-radius:var(--radio-full);background:var(--color-abierto)}
.ks-estado-apertura--cerrado{color:var(--color-texto-secundario)}
.ks-estado-apertura--cerrado::before{background:var(--color-cerrado)}

/* --- plegable genérico --- */
.ks-plegable{border:1px solid var(--color-borde);border-radius:var(--radio-lg);overflow:hidden}
.ks-plegable>summary{display:flex;align-items:center;justify-content:space-between;gap:var(--esp-3);padding:var(--esp-3) var(--esp-4);font-family:var(--fuente-titular);font-weight:var(--peso-medio);font-size:var(--texto-md);cursor:pointer;list-style:none;background:var(--color-superficie-alt)}
.ks-plegable>summary::-webkit-details-marker{display:none}
.ks-plegable>summary .ks-icono{transition:transform var(--transicion)}
.ks-plegable[open]>summary .ks-icono{transform:rotate(180deg)}
.ks-plegable__cuerpo{padding:var(--esp-4);display:grid;gap:var(--esp-3)}
.ks-mapa{display:block;position:relative;border-radius:var(--radio-md);overflow:hidden}
.ks-mapa img{width:100%;aspect-ratio:16/9;object-fit:cover}
.ks-mapa__pie{display:flex;align-items:center;gap:var(--esp-2);padding:var(--esp-2) var(--esp-3);font-size:var(--texto-sm);background:var(--color-superficie-alt);color:var(--color-texto)}

/* --- promoción destacada (1.22, solo PRO) --- */
.ks-promo-destacada{display:grid;gap:var(--esp-2);border:1.5px solid var(--color-promo);background:var(--color-promo-suave);border-radius:var(--radio-lg);padding:var(--esp-4)}
.ks-promo-destacada h2{font-size:var(--texto-lg);margin:0}
.ks-promo-destacada p{margin:0;font-size:var(--texto-sm);color:var(--color-texto-secundario)}
.ks-promo-destacada__vigencia{font-size:var(--texto-xs);color:var(--color-texto-atenuado)}

/* --- acordeón de FAQs (1.16) --- */
.ks-acordeon{display:grid;gap:var(--esp-2)}
.ks-acordeon__item{border:1px solid var(--color-borde);border-radius:var(--radio-md)}
.ks-acordeon__item>summary{display:flex;align-items:center;justify-content:space-between;gap:var(--esp-3);padding:var(--esp-3) var(--esp-4);font-family:var(--fuente-titular);font-weight:var(--peso-medio);cursor:pointer;list-style:none}
.ks-acordeon__item>summary::-webkit-details-marker{display:none}
.ks-acordeon__item>summary .ks-icono{flex:0 0 auto;transition:transform var(--transicion)}
.ks-acordeon__item[open]>summary .ks-icono{transform:rotate(45deg)}
.ks-acordeon__cuerpo{padding:0 var(--esp-4) var(--esp-4);color:var(--color-texto-secundario);font-size:var(--texto-sm)}

/* --- listas con fecha (1.18–1.21) --- */
.ks-lista-fechas{list-style:none;margin:0;padding:0;display:grid;gap:var(--esp-3)}
.ks-lista-fechas li{display:grid;grid-template-columns:5.5rem 1fr;gap:var(--esp-3);align-items:baseline;padding-bottom:var(--esp-3);border-bottom:1px solid var(--color-borde)}
.ks-lista-fechas li:last-child{border-bottom:0;padding-bottom:0}
.ks-lista-fechas__fecha{font-family:var(--fuente-titular);font-size:var(--texto-sm);font-weight:var(--peso-medio);color:var(--color-texto-atenuado);font-variant-numeric:tabular-nums}
.ks-lista-fechas__que{min-width:0}
.ks-lista-fechas__que strong{font-weight:var(--peso-medio)}
.ks-lista-fechas__que span{display:block;font-size:var(--texto-sm);color:var(--color-texto-secundario)}
@media (max-width:29.9375em){.ks-lista-fechas li{grid-template-columns:1fr}}

/* --- artistas residentes (1.15) --- */
.ks-residentes{display:grid;gap:var(--esp-3);grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;margin:0;padding:0}
@media (min-width:48em){.ks-residentes{grid-template-columns:repeat(3,minmax(0,1fr))}}
.ks-residente{display:flex;gap:var(--esp-3);align-items:center;min-width:0}
.ks-residente img{width:48px;height:48px;border-radius:var(--radio-full);object-fit:cover;background:var(--color-superficie-alt);flex:0 0 auto}
.ks-residente__nombre{font-family:var(--fuente-titular);font-size:var(--texto-sm);font-weight:var(--peso-medio);color:var(--color-texto);text-decoration:none;display:block;overflow-wrap:anywhere}
.ks-residente__estilo{font-size:var(--texto-xs);color:var(--color-texto-secundario)}

/* --- hueco publicitario (1.31, solo gratuito) --- */
.ks-anuncio{display:grid;place-items:center;gap:var(--esp-1);min-height:250px;background:var(--color-anuncio);border-radius:var(--radio-md);color:var(--color-texto-atenuado);font-size:var(--texto-xs);text-align:center;padding:var(--esp-4)}
.ks-anuncio__etiqueta{font-family:var(--fuente-titular);text-transform:uppercase;letter-spacing:.08em}

/* --- contacto: barra fija en móvil, aside en escritorio --- */
.ks-aside-contacto{display:none}
@media (min-width:64em){.ks-aside-contacto{display:grid;gap:var(--esp-4);position:sticky;top:calc(var(--ficha-anclas-alto) + var(--esp-4))}}
.ks-contacto-barra--fija{position:fixed;bottom:0}
@media (min-width:64em){.ks-contacto-barra--fija{display:none}}
.ks-hoja-contacto{position:fixed;inset:auto 0 0;max-height:88vh;overflow:auto;background:var(--color-superficie);border-radius:var(--radio-lg) var(--radio-lg) 0 0;box-shadow:var(--sombra-3);padding:var(--esp-5) var(--esp-4) var(--esp-6);z-index:var(--z-pantalla);display:none}
.ks-hoja-contacto.is-abierta{display:grid;gap:var(--esp-4)}
.ks-hoja-contacto__cerrar{position:absolute;top:var(--esp-3);right:var(--esp-3);width:40px;height:40px;border-radius:var(--radio-full);border:1px solid var(--color-borde);background:var(--color-superficie);font-size:var(--texto-lg);line-height:1;cursor:pointer;color:var(--color-texto)}
.ks-redes{display:flex;flex-wrap:wrap;gap:var(--esp-2);list-style:none;margin:0;padding:0}
.ks-redes a{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--color-borde);border-radius:var(--radio-full);color:var(--color-texto);text-decoration:none}
.ks-redes a:hover{border-color:var(--color-marca);background:var(--color-marca-suave);color:var(--color-marca-oscura)}
.ks-enviado{display:grid;gap:var(--esp-2);justify-items:center;text-align:center;border:1.5px solid var(--color-marca);background:var(--color-marca-suave);border-radius:var(--radio-lg);padding:var(--esp-5) var(--esp-4)}
.ks-enviado__icono{width:48px;height:48px;display:grid;place-items:center;border-radius:var(--radio-full);background:var(--color-marca);color:var(--color-texto-inverso)}
.ks-enviado h3{margin:0}
.ks-enviado p{margin:0;font-size:var(--texto-sm);color:var(--color-texto-secundario)}
/* === FIN FICHA DEL PROFESIONAL === */

/* === CORRECCIONES DEL PORTEO DE PLANTILLAS (25/08/2026) ===
   Va al final del archivo a propósito: .ks-ficha--sin-aside tiene la misma
   especificidad que .ks-ficha, así que solo gana si se declara después. */
.ks-ficha--sin-aside{padding-bottom:var(--esp-8)}
@media (min-width:64em){.ks-ficha--sin-aside{grid-template-columns:minmax(0,1fr)}}
/* === FIN correcciones del porteo de plantillas === */


/* === HOME — extensiones del Brief 03 (26/08/2026) ===
   Portado literal de home.css salvo el toggler de demo (.ks-demo-toggle y
   body[data-v=...]), que no se portea: en producción cada bloque es
   simplemente el estado real de los datos, no una plantilla conmutable. */
:root{
  --home-hero-alto:clamp(420px,62vw,620px);
}

/* 1. Héroe fotográfico + buscador flotante */
.ks-hero{position:relative;min-height:var(--home-hero-alto);display:flex;align-items:flex-end;overflow:hidden}
.ks-hero__foto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%}
.ks-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(24,24,24,.78) 0%,rgba(24,24,24,.38) 55%,rgba(24,24,24,.05) 100%)}
.ks-hero h1{font-weight:var(--peso-medio)}
.ks-hero__contenido{position:relative;z-index:1;width:100%;max-width:var(--contenedor);margin:0 auto;padding:var(--esp-7) var(--esp-4) var(--esp-6);display:grid;gap:var(--esp-4)}
.ks-hero h1{color:#fff;max-width:16ch;font-size:var(--texto-3xl)}
.ks-hero__sub{color:#f3e6d8;margin:0;font-size:var(--texto-lg);max-width:44ch}
.ks-hero .ks-buscador{background:var(--color-superficie);border-radius:var(--radio-lg);padding:var(--esp-2);box-shadow:var(--sombra-3);max-width:640px}
.ks-hero .ks-buscador .ks-campo__control{border:0}
.ks-hero .ks-buscador .ks-campo__control:focus{box-shadow:none;outline:none}
.ks-hero__categorias{display:flex;flex-wrap:wrap;gap:var(--esp-2)}
.ks-hero__categorias a{color:#fff;text-decoration:none;padding:var(--esp-1) var(--esp-3);border:1px solid rgba(255,255,255,.4);border-radius:var(--radio-full);font-size:var(--texto-sm)}
.ks-hero__categorias a:hover{background:rgba(255,255,255,.15);color:#fff}

/* 2. Bloque genérico de sección de home */
.ks-bloque{padding:var(--esp-7) var(--esp-4)}
.ks-bloque--alt{background:var(--color-superficie-alt)}
.ks-bloque__cabecera{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:var(--esp-3);max-width:var(--contenedor);margin:0 auto var(--esp-5)}
.ks-bloque__cabecera h2{margin:0}
.ks-bloque__ver-todo{font-family:var(--fuente-titular);font-size:var(--texto-sm);color:var(--color-enlace);text-decoration:none;white-space:nowrap}
.ks-bloque__ver-todo:hover{color:var(--color-enlace-hover)}
.ks-bloque__cuerpo{max-width:var(--contenedor);margin:0 auto}

/* 3. Franja de confianza (sellos + cifras a modo de resumen del catálogo) */
.ks-cifras{display:grid;gap:var(--esp-5);grid-template-columns:repeat(2,1fr);text-align:center}
@media (min-width:48em){.ks-cifras{grid-template-columns:repeat(4,1fr)}}
.ks-cifra__num{font-family:var(--fuente-titular);font-size:var(--texto-2xl);font-weight:var(--peso-fuerte);color:var(--color-marca);line-height:1}
.ks-cifra__etq{font-size:var(--texto-sm);color:var(--color-texto-secundario)}

/* chips de categoría — versión más grande y redonda, foto o icono opcional */
.ks-chips--categorias{gap:var(--esp-3)}
.ks-chips--categorias .ks-chip{padding:var(--esp-3) var(--esp-5);font-size:var(--texto-md);font-family:var(--fuente-titular);background:var(--color-superficie);border-color:var(--color-borde);box-shadow:var(--sombra-1)}
.ks-chips--categorias .ks-chip:hover{border-color:var(--color-marca);background:var(--color-marca-suave);color:var(--color-texto)}

/* 6. CTA "soy profesional" */
.ks-cta-pro{background:var(--color-pro-suave);border:1px solid var(--color-pro);border-radius:var(--radio-lg);padding:var(--esp-6) var(--esp-5);display:grid;gap:var(--esp-4);max-width:var(--contenedor);margin:0 auto;text-align:center}
@media (min-width:48em){.ks-cta-pro{grid-template-columns:1fr auto;text-align:left;align-items:center}}
.ks-cta-pro h2{margin:0}
.ks-cta-pro p{margin:0;color:var(--color-texto-secundario)}

/* 8. Enlaces cruzados por ciudad, reutiliza 4.10 en variante de cajas — sin extensión nueva */

/* estado vacío específico de home: catálogo recién lanzado, sin PRO todavía */
.ks-vacio-home{border:1px dashed var(--color-borde-fuerte);border-radius:var(--radio-lg);padding:var(--esp-6) var(--esp-5);text-align:center;color:var(--color-texto-secundario);max-width:var(--contenedor);margin:0 auto}
.ks-vacio-home h3{margin:0 0 var(--esp-2);color:var(--color-texto)}
/* === FIN extensiones de la home === */
