.elementor-kit-53{--e-global-color-primary:#1A1A1A;--e-global-color-secondary:#F2EFE9;--e-global-color-text:#1A1A1A;--e-global-color-accent:#7A7670;--e-global-color-sp_line:#DAD6CF;--e-global-typography-primary-font-family:"Inter";--e-global-typography-primary-font-weight:300;--e-global-typography-primary-line-height:1.2em;--e-global-typography-secondary-font-family:"Inter";--e-global-typography-secondary-font-size:0.875rem;--e-global-typography-secondary-font-weight:500;--e-global-typography-secondary-line-height:1.4em;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-size:0.875rem;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.6em;--e-global-typography-accent-font-family:"Inter";--e-global-typography-accent-font-size:0.68rem;--e-global-typography-accent-font-weight:400;--e-global-typography-accent-line-height:1.4em;background-color:#F2EFE9;color:#1A1A1A;font-family:"Inter", Sans-serif;font-size:0.875rem;font-weight:400;line-height:1.6em;}.elementor-kit-53 e-page-transition{background-color:#FFBC7D;}.elementor-kit-53 a{color:#1A1A1A;}.elementor-kit-53 a:hover{color:#7A7670;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){margin-block-end:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.elementor-lightbox{background-color:#F2EFE9;--lightbox-ui-color:#1A1A1A;--lightbox-ui-color-hover:#7A7670;--lightbox-text-color:#1A1A1A;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:95%;}.e-con{--container-max-width:95%;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:95%;}.e-con{--container-max-width:95%;}}/* Start custom CSS *//* Silvia Paredes — v2 "simple y silencioso" */
body { -webkit-font-smoothing: antialiased; }
::selection { background: #1A1A1A; color: #F2EFE9; }
:focus-visible { outline: 1px solid #1A1A1A; outline-offset: 4px; }
a { transition: color .2s ease; }

/* Cabecera: nombre-logo + menú horizontal (en Inicio el menú es vertical, dentro de la página) */
.sp-wordmark a { color: inherit !important; }
.home .sp-header .sp-nav { display: none; }
/* En Inicio el nombre respira un poco más abajo, como pide la revisión. */
.home .sp-header { padding-top: 2.5rem !important; }
.sp-nav .elementor-nav-menu--main .elementor-item.elementor-item-active { color: #1A1A1A; }
@media (max-width: 1024px) {
  .sp-header .elementor-nav-menu--dropdown { background: #F2EFE9; padding: 1.5rem 0 2rem; }
}
@media (max-width: 767px) { .home .sp-header { padding-top: 1.75rem !important; } }

/* Enlaces de texto */
.sp-links a, .sp-footer a, .sp-contact a, .sp-vmenu a { color: #1A1A1A; text-decoration: none; }
.sp-links a:hover, .sp-footer a:hover, .sp-contact a:hover, .sp-vmenu a:hover { color: #7A7670; }
.sp-backlink .elementor-button-text::before { content: "←"; display: inline-block; margin-right: .5rem; }
.sp-links p, .sp-contact p, .sp-vmenu p { margin: 0; }

/* Inicio: recupera la escala 34/66 y la altura de viewport de la propuesta inicial. */
.sp-vmenu p { line-height: 1.35; }
.sp-home-img, .sp-home-img .elementor-widget-container { width: 100%; height: 100%; }
.sp-home-img img { display: block; width: 100% !important; max-width: 100%; height: 100vh; max-height: none;
  object-fit: cover; object-position: center center; margin-left: auto; }
@media (max-width: 1024px) { .sp-home-img img { height: 82vh; } }
@media (max-width: 767px) { .sp-home-img img { width: 100% !important; height: 82vh; } }

/* Índice de proyectos (Listing Grid JetEngine): compacto y sin líneas */
.sp-index .jet-listing-grid__items { counter-reset: sp-row; }
.sp-index .jet-listing-grid__item { counter-increment: sp-row; padding: 0 !important; }
.sp-row { position: relative; }
.sp-row::before { content: counter(sp-row, decimal-leading-zero); position: absolute; left: 0; top: .5rem;
  font-size: .7rem; line-height: 1.5; color: #7A7670; font-variant-numeric: tabular-nums; }
.sp-index .jet-listing-grid__item.is-active .sp-row::before, .sp-index .jet-listing-grid__item.is-active .sp-row-title { color: #1A1A1A; }
.sp-row .jet-listing-dynamic-terms { display: inline; }
.sp-row-meta, .sp-row-meta p, .sp-row-meta .jet-listing-dynamic-terms { font-size: .7rem; line-height: 1.4; color: #7A7670; margin: 0; }
.sp-row-meta .jet-listing-dynamic-terms__link { color: #7A7670; pointer-events: none; }
.sp-row-meta:not(:has(.sp-ubic .jet-listing-dynamic-terms__link)) .sp-dot { display: none; }
.sp-row-year { white-space: nowrap; font-size: .7rem; line-height: 1.5; color: #7A7670; font-variant-numeric: tabular-nums; }
.sp-row-thumb img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; }
@media (min-width: 861px) { .sp-row-thumb { display: none !important; } }
.sp-preview { position: sticky; top: 2rem; height: calc(100vh - 4rem); overflow: hidden; margin: 0; }
.sp-preview img { width: 100%; height: 100%; object-fit: cover; display: block; transition: opacity .25s ease; }
@media (max-width: 860px) { .sp-preview-col { display: none !important; } }

/* Proyectos móvil: listing propio, foto completa y ficha inequívocamente debajo. */
.sp-mobile-index .jet-listing-grid__items { counter-reset: sp-mobile-row; }
.sp-mobile-index .jet-listing-grid__item { counter-increment: sp-mobile-row; padding: 0 0 2rem !important;
  margin: 0 0 2.5rem !important; border-bottom: 1px solid rgba(26,26,26,0.14); }
.sp-mobile-index .jet-listing-grid__item:last-child { margin-bottom: 0 !important; }
.sp-mobile-card-image, .sp-mobile-card-image .jet-listing-dynamic-image__link { display: block; width: 100%; }
.sp-mobile-card-image img { display: block; width: 100% !important; max-width: 100% !important; height: auto !important; object-fit: contain; }
.sp-mobile-card-info { position: relative; padding: .9rem 0 0 2.4rem; }
.sp-mobile-card-info::before { content: counter(sp-mobile-row, decimal-leading-zero); position: absolute; left: 0; top: .95rem;
  font-size: .7rem; line-height: 1.5; color: #7A7670; font-variant-numeric: tabular-nums; }
.sp-mobile-card-meta, .sp-mobile-card-meta p, .sp-mobile-card-meta .jet-listing-dynamic-terms {
  margin: 0; font-size: .7rem; line-height: 1.4; color: #7A7670; }
.sp-mobile-card-meta .jet-listing-dynamic-terms__link { color: #7A7670; pointer-events: none; }
.sp-mobile-card-meta:not(:has(.sp-ubic .jet-listing-dynamic-terms__link)) .sp-dot { display: none; }
.sp-mobile-card-year { white-space: nowrap; font-size: .7rem; line-height: 1.5; color: #7A7670; font-variant-numeric: tabular-nums; }

/* Ficha de proyecto: datos a la izquierda, fotos a la derecha */
.sp-facts .jet-listing-dynamic-field__content, .sp-facts .jet-listing-dynamic-terms { white-space: pre-line; }
.sp-fact:not(:has(.jet-listing-dynamic-field__content)):not(:has(.jet-listing-dynamic-terms__link)) { display: none; }
.sp-fact .jet-listing-dynamic-terms__link { color: inherit; pointer-events: none; }
.sp-fact .jet-listing-dynamic-terms { font-size: .8rem; line-height: 1.45; }
.sp-fact-label .elementor-heading-title { margin: 0; }
.sp-lbl-obra { display: none; }
.disciplina-obra .sp-lbl-obra { display: block; }
.disciplina-obra .sp-lbl-proyecto { display: none; }
.sp-cover img { display: block; width: 100%; height: auto; max-height: calc(100vh - 9rem); object-fit: contain; object-position: left top; }
.sp-gallery .gallery { display: flex !important; flex-direction: column; gap: clamp(3rem, 7vw, 7rem); margin: 0 !important; }
.sp-gallery .gallery-item { display: flex; margin: 0 !important; padding: 0 !important; max-width: none !important; width: 100% !important; }
.sp-gallery .gallery-icon { margin: 0; }
.sp-gallery .gallery-item img { display: block; width: auto; height: auto; max-width: 100%; max-height: 88vh; border: 0 !important; }
.sp-gallery br { display: none; }
.sp-cover a, .sp-gallery a { cursor: zoom-in; }
@media (min-width: 861px) {
  .sp-gallery .gallery-item:nth-of-type(4n+1) { justify-content: flex-end; }
  .sp-gallery .gallery-item:nth-of-type(4n+2) { justify-content: flex-start; padding-left: 8% !important; }
  .sp-gallery .gallery-item:nth-of-type(4n+3) { justify-content: center; }
  .sp-gallery .gallery-item:nth-of-type(4n) { justify-content: flex-end; padding-right: 12% !important; }
  .sp-gallery .gallery-item:nth-of-type(4n+2) img, .sp-gallery .gallery-item:nth-of-type(4n) img { max-width: 62%; }
}
@media (max-width: 860px) {
  /* Anula floats, anchos y paddings de Elementor: una foto por fila, sin solapes. */
  .sp-cover, .sp-cover .jet-listing-dynamic-image__link, .sp-gallery .gallery,
  .sp-gallery .gallery-item, .sp-gallery .gallery-icon { width: 100% !important; max-width: 100% !important; }
  .sp-cover .jet-listing-dynamic-image__link { display: block !important; }
  .sp-cover img, .sp-gallery .gallery-item img { display: block !important; width: 100% !important; max-width: 100% !important;
    height: auto !important; max-height: none !important; object-fit: contain; }
  /* Flujo normal, no flex: en Safari de iPhone la columna flex colapsaba y las fotos
     se salían por encima del pie (revisión v3). flow-root contiene cualquier float. */
  .sp-gallery, .sp-gallery > .elementor-widget-container { display: flow-root !important; }
  .sp-gallery .gallery { display: block !important; gap: 0 !important; }
  .sp-gallery .gallery-item { display: block !important; float: none !important; clear: both !important;
    margin: 0 0 2rem !important; padding: 0 !important; }
  .sp-gallery .gallery-item:last-child { margin-bottom: 0 !important; }
  .sp-gallery .gallery-icon { display: block !important; margin: 0 !important; padding: 0 !important; }
}

/* WebKit comprimía los contenedores flex de la ficha cuando su alto lo marcan imágenes, y el
   enlace «Proyectos» acababa encima de la última foto. En móvil la ficha va apilada a ancho
   completo y no necesita flex para nada, así que pasa a flujo de bloque puro, que ningún
   navegador encoge; los gap de flex se recrean con márgenes (revisión v3, 27/10). */
@media (max-width: 860px) {
  .single-proyecto .e-con, .single-proyecto .elementor-widget { flex-shrink: 0 !important; }
  .sp-single, .sp-single-top, .sp-single-photos { display: block !important; }
  .sp-single > *, .sp-single-top > *, .sp-single-photos > * { width: 100% !important; max-width: 100% !important; }
  /* !important: Elementor pone margin-block-end:0 a los widgets con «.e-con .elementor-widget.elementor-widget»,
     que pesa más y dejaba la portada pegada a la galería (28/10). Mismo hueco que entre fotos de la galería. */
  .sp-single-top > * { margin-bottom: 2.5rem !important; }
  .sp-single-photos > * { margin-bottom: 2rem !important; }
  .sp-single > * { margin-bottom: 5rem !important; }
  .sp-single > *:last-child, .sp-single-top > *:last-child, .sp-single-photos > *:last-child { margin-bottom: 0 !important; }
  .sp-backlink { position: relative; z-index: 10; clear: both; }
}

/* Perfil: desplegables silenciosos */
.sp-toggle .elementor-toggle-item { margin-bottom: .4rem; }
.sp-toggle .elementor-tab-title { border: 0 !important; display: inline-flex !important; gap: .9rem; align-items: baseline; cursor: pointer; }
.sp-toggle .elementor-tab-title .elementor-toggle-icon { order: 2; width: auto !important; font-size: 9px !important; line-height: 1 !important; align-self: center; }
.sp-toggle .elementor-tab-title .elementor-toggle-icon svg { width: 9px !important; height: 9px !important; }
.sp-toggle .elementor-tab-content { border: 0 !important; }
.sp-toggle .elementor-tab-content p { max-width: 62ch; margin: 0 0 1em; }
.sp-timeline { display: grid; gap: .35rem; }
.sp-timeline div { display: grid; grid-template-columns: 3.5rem 1fr; gap: 1rem; }
.sp-timeline strong { font-weight: 400; color: #7A7670; font-variant-numeric: tabular-nums; }
.sp-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem; }
.sp-columns h3 { margin: 0 0 .6rem; font-family: "Inter", sans-serif; font-size: .7rem; font-weight: 400; color: #7A7670; }
.sp-columns p { margin: 0; }
@media (max-width: 860px) { .sp-columns { grid-template-columns: 1fr; gap: 1.5rem; } }
.sp-intro p { margin: 0 0 1em; } .sp-intro p:last-child { margin: 0; }

/* Pie: redes y crédito flotan en escritorio; Kit Digital y legales siguen en flujo. */
/* El pie cierra el documento: nunca puede quedar por debajo de las fotos (revisión v3). */
.sp-footer { position: relative; z-index: 10; background: #F2EFE9; clear: both; }
.sp-footer .sp-links, .sp-footer .sp-links p, .sp-footer .sp-credit, .sp-footer .sp-credit p {
  font-size: .68rem !important; line-height: 1.4 !important; }
/* La altura mínima deja fuera el móvil apaisado, donde flotar se come la pantalla. */
@media (min-width: 861px) and (min-height: 620px) {
  .sp-footer .sp-links, .sp-footer .sp-credit { position: fixed; bottom: max(1rem, env(safe-area-inset-bottom)); z-index: 90;
    width: auto !important; margin: 0 !important; padding: 0 !important; background: transparent; }
  .sp-footer .sp-links { left: clamp(1.25rem, 3.4vw, 3.5rem); }
  .sp-footer .sp-credit { right: clamp(1.25rem, 3.4vw, 3.5rem); }
  body.elementor-editor-active .sp-footer .sp-links, body.elementor-editor-active .sp-footer .sp-credit { position: static; }
  /* En Inicio no flota (lo pide la clienta: «en esta página no, en las de proyecto sí») */
  .home .sp-footer .sp-links, .home .sp-footer .sp-credit { position: static; padding: 0 !important; background: transparent; }
}
@media (max-width: 860px), (max-height: 619px) {
  .sp-footer .sp-links, .sp-footer .sp-credit { position: static; width: auto !important; padding: 0 !important; background: transparent; }
}
.sp-footer .sp-kit { width: min(100%, 560px) !important; max-width: 560px !important; margin: 0 auto !important; align-self: center; }
.sp-footer .sp-kit .elementor-section .elementor-container { max-width: none !important; }
.sp-footer .sp-kit img { max-height: 26px !important; width: auto !important; object-fit: contain; filter: grayscale(1); opacity: .75; }
.sp-footer .sp-kit .elementor-heading-title { font-family: "Inter", sans-serif !important; font-size: 8px !important; line-height: 1.4 !important; letter-spacing: .06em !important; color: #7A7670 !important; font-weight: 400 !important; }
.sp-footer .sp-kit .elementor-widget-text-editor { font-family: "Inter", sans-serif !important; font-size: 8px !important; line-height: 1.4 !important; color: #7A7670 !important; }
.sp-footer .sp-kit .elementor-divider { display: none; }
.sp-footer .sp-kit .elementor-column-gap-default > .elementor-column > .elementor-element-populated { padding: 4px; }
.sp-legal-links a { color: #7A7670 !important; }
/* Móvil: el bloque Kit Digital ocupaba demasiado y partía la lectura (revisión v3). */
@media (max-width: 860px) {
  .sp-footer { padding-top: 2rem !important; }
  .sp-footer .sp-kit { width: min(100%, 320px) !important; max-width: 320px !important; }
  .sp-footer .sp-kit img { max-height: 17px !important; }
  .sp-footer .sp-kit .elementor-heading-title,
  .sp-footer .sp-kit .elementor-widget-text-editor { font-size: 7px !important; line-height: 1.35 !important; }
  .sp-footer .sp-kit .elementor-column-gap-default > .elementor-column > .elementor-element-populated { padding: 2px; }
  .sp-legal-links p { font-size: .6rem !important; }
}

.sp-legal-body p { margin: 0 0 1em; } .sp-legal-body p:last-child { margin-bottom: 0; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; } }/* End custom CSS */