/* ============================================================
   RESPONSIVE
   ============================================================ */

html {
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

    .is-closer:hover{
	    cursor: pointer;
	    color: var(--contrast) !important;
    }



/* ============================================================
   DESKTOP GIGANTE — > 1920px
   ============================================================ */

@media only screen and (min-width: 1921px) {

.home-grid{
	grid-template-columns: repeat(7, 1fr) !important;
}



}



/* ============================================================
   DESKTOP GRANDE — > 1440px
   ============================================================ */

@media only screen and (min-width: 1441px) {

.home-grid{
	grid-template-columns: repeat(6, 1fr);
}



}




/* ============================================================
   DESKTOP — > 1080px
   hover states solo en dispositivos con puntero fino
   ============================================================ */

@media only screen and (min-width: 1081px) {

    .mobile      { display: none !important; }
    .desktop     { display: block !important; }


    .swiper-fraction{
	    display: none;
	    }
    /* Hover genérico */
    @media (hover: hover) and (pointer: fine) {

        .hover:hover     { color: var(--accent); cursor: pointer; }

.site-name:hover,
a.greyed:hover{
	cursor: pointer;
	color: var(--contrast);
}

  
    }
    
    
    .header-title--ajax {
    position: absolute; 
    top:0;
    left: 50%;
    transform: translateX(-50%);
}

/* El footer sube var(--header) y se cruza con la última sección del portfolio.
   Ahí los créditos suben para dejarle su línea, justo por encima de ella. */
.portfolio-project:last-of-type .project-credits {
    bottom: calc(var(--header) - var(--pad));
}



.footer_p{
position: fixed;
  z-index: 2;
  height: var(--header);
  margin-top: calc(-1 * var(--header));
  padding: var(--pad);
  bottom: 0;
  left: 0;
}

}


/* ============================================================
   TABLET + MÓVIL LANDSCAPE + TABLET COARSE
   — ≤ 1080px  |  landscape coarse  |  portrait coarse ≤ 1024px
   ============================================================ */

@media only screen and (max-width: 1080px),
       only screen and (pointer: coarse) and (orientation: landscape),
       only screen and (max-width: 1024px) and (pointer: coarse) and (orientation: portrait) {


.footer_p{
display: none;
}
.overlay-contact-items{
	gap:var(--pad);
}


    .desktop { display: none !important; }
    .mobile  { display: block !important; }

    :root {
    --fs-small:  14px;
    --fs-body:   14px;
    --ls-small:  0.01em;
    --ls-body:   0.01em;
    }
    
    #mobileFilterOpen{
	    display:  block;
            position: fixed;
            padding: var(--pad);
        bottom: 0;
        left: 0;
        z-index: 99;
            transition: opacity 0.3s ease;

    }
    #overlay-contact.overlay, #overlay-about.overlay, #overlay-privacy.overlay{
	    overflow: auto;
    }
    
    
    #header {
    transition: transform 0.3s ease, opacity 0.3s ease;
}

#header.is-hidden {
    transform: translateY(-100%);
    opacity: 0;
    pointer-events: none;
}
    
    
    
    .single-portfolio #header{
	    position: absolute;
    }
    
    
  #mobileFilterOpen.zeta{
        z-index: 9999999;
 }
 .client-area{
	 padding-top: calc(var(--pad) * 2);
	 flex-direction: column;
 }

#overlay-about{
	align-items: flex-start;
}

.home-grid{
	grid-template-columns: repeat(3, 1fr) !important;
}

    /* Nav — ocultar menú desktop, mostrar hamburger */
    #headerFilters, .grid-item-title, .nav-desktop , .grid-cursor,    .swiper-cursor       { display: none !important; }
    .mobile-menu              { display: flex !important; }

    /* Footer */
    #footer {
        grid-template-columns: 1fr;
        padding: var(--pad);
    }
    

    .project-swiper{
	    max-height: var(--real100);
    }
    
    .swiper-slide{
	width:100% !important;

	& img, & video{
        padding: calc(var(--header) + var(--pad)) var(--pad);}
}

    /* Créditos — encima de la fracción, que ocupa la línea de abajo */
    .project-credits {
        bottom: calc(var(--pad) + (var(--fs-body) * var(--lh-body)));
        padding-bottom: 0;
    }

    /* En el portfolio lo de abajo son los controles Prev/1-13/Next */
    .portfolio-project .project-credits {
        bottom: calc((var(--pad) * 2) + (var(--fs-body) * var(--lh-body)));
    }


    .swiper-fraction{
	bottom: var(--pad) !important;
  right: var(--pad) !important;
  text-align: right;
  width: auto !important;
}


    
    .header-filters { display: none; }

    .mobile-filter-overlay {
        display: none;
        position: fixed;
        inset: 0;
        z-index: 999999;
        background: var(--primary);
        padding: var(--pad);
        flex-direction: column;

        &.is-open {
            display: flex !important;
        }
    }

    .mobile-filter-close {
        font-size: var(--fs-small);
        color: var(--grey);
        cursor: pointer;
        align-self: flex-start;
    }

    .mobile-filter-list {
        display: flex;
flex-direction: column;
    gap: 5px;
    height: 100%;
    padding-bottom: calc((var(--fs-body) * var(--lh-body)) + var(--pad));
    display: flex;
    justify-content: center;

        a {
            color: var(--grey);
            &.is-active { color: var(--contrast); }
        }
    }

    .mobile-filter-trigger {
        cursor: pointer;
        position: fixed;
        bottom:var(--pad);
        left: var(--pad);
                align-self: flex-start;
        margin-top: auto;
    }

    .home-grid-filtered .header-inner {
        display: flex;
        justify-content: space-between;
    }

    .mobile-filter-status {
        font-size: var(--fs-small);
    }

    .mobile-filter-reset {
        font-size: var(--fs-small);
        color: var(--grey);
        cursor: pointer;
        position: absolute;
        right: var(--pad);
    }


    .closer-privacy{
	    position: fixed;
	    top:0;
	    right: 0;
	    padding: var(--pad);
    }
    
    #overlay-privacy.overlay{
	z-index: 9999;
}
}


/* ============================================================
   TELÉFONO — ≤ 768px
   ============================================================ */

@media only screen and (max-width: 768px) {

    :root {
        --real100:   100dvh !important; 
       

    --fs-body:  15px;
    --lh-body:   1.2;
    --ls-body:   0.01em;
    }
    
    .client-login-form{
	    flex-direction: column;
	    justify-content: flex-start;
	    align-items: flex-start;
    }
    .logged-in.page-template-client .header-inner,
    .single-portfolio .header-inner{
	    grid-template-columns: 1fr;
    }
    


    

        
    footer{
	    height: var(--real100) !important;
	    display: flex;
	    align-items: center;
    }

.single-portfolio #footer{
	display: flex;
	margin-top: 0;
}


.header-nav,
.header-center {
	position: absolute;
	right: var(--pad);

}


.single-post #header,
#header.project-open {
    .header-nav {
       opacity: 0;
    }


  }



    .single-post .header-inner {
        grid-template-columns: auto 1fr;
        column-gap: 10px;
        align-items: flex-start;
    }

    /* El .header-center global es absolute con right:var(--pad) y sin left, así que
       crecía hacia la izquierda hasta pisar el site-name. Aquí vuelve al grid: el
       nombre ocupa lo suyo, el título el resto, y si no cabe en una línea envuelve. */
    .single-post .header-center {
        position: static;
        justify-self: end;
        min-width: 0;
        text-align: right;
    }

    .single-post .header-title {
        display: block;
        justify-self: end;
        text-align: right;
    }

    .swiper-fraction {
        position: fixed;
        bottom: var(--pad);
        right: var(--pad);
        color: var(--contrast);
        z-index: 10;
        pointer-events: none;
    }

    
.page-template-client footer{
display: none;}

.home-grid{
	grid-template-columns: repeat(2, 1fr) !important;
  gap: var(--pad);
  padding: calc(var(--header) + var(--pad)) var(--pad) calc(var(--real100) + var(--header));
}
.home #footer{
	margin-top:calc(-1 * var(--real100));
}

.post-content{
	text-align: left;
}
.footer-nav ul,
.overlay-contact-items{
	flex-direction: column;
	gap:5px !important;
}

/* El formulario del footer baja debajo del menú */
.footer-nav {
	flex-direction: column;
	align-items: flex-start;
	gap: 5px;
}


}


/* ============================================================
   TELÉFONO PEQUEÑO — ≤ 480px
   ============================================================ */

@media only screen and (max-width: 480px) {


}


/* ============================================================
   HAMBURGER — base (visible solo en mobile)
   ============================================================ */

.mobile-menu {
    display: none;
    flex-direction: column;
    justify-content: space-between;
    cursor: pointer;
    width: 24px;
    height: 18px;
    margin-left: auto;
}

.mobile-menu .line {
    display: block;
    width: 100%;
    height: 1px;
    background-color: var(--contrast);
    transition: transform 0.2s ease, opacity 0.2s ease, width 0.2s ease;
}

.mobile-menu.is-active .line:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.mobile-menu.is-active .line:nth-child(2) { opacity: 0; width: 0; }
.mobile-menu.is-active .line:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }