@font-face{
  font-family:'Bacalisties';
  src:url('../fonts/Bacalisties.ttf') format('truetype');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}

/* =========================================================
   AL·MA Espacios — Hoja de estilos principal
   Estructura organizada:
   1. Fuentes
   2. Reset y variables globales
   3. Layout base
   4. Header / navegación
   5. Hero y slider
   6. Secciones generales
   7. Carrusel de proyectos
   8. Páginas de proyecto
   9. Equipo
   10. Método AL·MA
   11. Footer
   12. Responsive
   ========================================================= */


/* ==================== 1. Fuentes ==================== */
@font-face{
  font-family:'Colabero';
  src:url('../fonts/Colabero.woff') format('woff'),
      url('../fonts/Colabero.ttf') format('truetype'),
      url('../fonts/Colabero.otf') format('opentype');
  font-weight:normal;
  font-style:normal;
  font-display:swap;
}


/* ==================== 2. Reset y variables globales ==================== */
*,:before,:after{box-sizing:border-box}
:root {
  --color-primary:#583a36;
  --bg:#f5f3f2;
  --bg-soft:#ffffff;
  --bg-card:#ece8e4;
  --bg-card-hover:#f0ebe7;
  --bg-glass:rgba(255, 255, 255, 0.72);
  --bg-glass-strong:rgba(255,255,255,.96);
  --overlay-brown:rgba(88, 58, 54, 0.875);
  --text:#64504f;
  --text-soft:#716766;
  --accent:#7a6460;
  --border:rgba(122,100,96,.16);
  --container:1180px;
  --header-height:112px;
  --transition:260ms ease;
}
html{
  scroll-behavior:smooth;
  background:var(--bg);
  overscroll-behavior-y:none;
}
body{
  margin:0;
  font-family:"Montserrat",sans-serif;
  background:var(--bg);
  color:var(--text);
  overscroll-behavior-y:none;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button{font:inherit}

/* ==================== 3. Layout base ==================== */
.container{
  /* Ancho máximo común y márgenes laterales de toda la web */
  width:min(calc(100% - 96px), 1600px);
  margin-left:auto;
  margin-right:auto;
}
.section{padding:72px 0}


/* ==================== 4. Header / navegación ==================== */
/* Glass header effect */
.site-header{
  /* Header fijo con efecto cristal */
  position:fixed;
  top:0;
  left:0;
  width:100%;
  z-index:100;
  background: rgba(255, 255, 255, 0.72);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(122, 100, 96, 0.08);
}

.site-header.is-scrolled{border-bottom:1px solid var(--border)}
.header-inner{
  width:min(calc(100% - 96px), 1600px);
  min-height:var(--header-height);
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:24px;
}
.brand{grid-column:2;justify-self:center}
.brand img{width:140px;height:auto}
.site-nav{grid-column:3;justify-self:end;display:flex;align-items:center;gap:28px;font-size:15px;font-weight:300}
.site-nav a{position:relative}
.site-nav a:after{content:"";position:absolute;left:0;bottom:-6px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:center;transition:transform var(--transition)}
.site-nav a:hover:after{transform:scaleX(1)}
.nav-toggle{display:none;border:0;background:transparent;padding:0;width:42px;height:42px;align-items:center;justify-content:center;flex-direction:column;gap:5px;cursor:pointer}
.nav-toggle span{display:block;width:22px;height:1.5px;background:var(--text)}


/* ==================== 5. Hero y slider ==================== */
.hero-fixed-shell{
  position:relative;
  height:100vh;
  min-height:640px;
}
.hero-fixed{
  /* Imagen/slider fijo al fondo para el efecto al hacer scroll */
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:100vh;
  min-height:640px;
  z-index:0;
  overflow:hidden;
  background:var(--bg-soft);
}
.hero-slider,.hero-slides,.hero-slide,.hero-media{height:100%}
.hero-slider{
  position:relative;
  cursor:default;
  touch-action:pan-y;
  user-select:none;
}
.hero-slider.is-dragging{cursor:default}
.hero-slides{position:relative}
.hero-slide{
  position:absolute;
  inset:0;
  opacity:0;
  pointer-events:none;
  transition:opacity .8s ease;
}
.hero-slide.is-active{opacity:1;pointer-events:auto}
.hero-media{
  background-size:cover;
  background-repeat:no-repeat;
  background-position:center center;
  transform:scale(1.03);
}
.hero-fixed:after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(to bottom,rgba(0,0,0,.03),rgba(0,0,0,.02));
}


.slider-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:64px;
  height:64px;
 
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.10);
  -webkit-backdrop-filter:blur(6px);
  backdrop-filter:blur(6px);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  z-index:3;
  transition:background .25s ease, border-color .25s ease, transform .25s ease;
}

.slider-arrow::before{
  
  position:absolute;
  top:50%;
  left:50%;
  width:22px;
  height:1.5px;
  background:#fff;
  transform:translate(-50%,-50%);
  transition:background .25s ease;
}

.slider-arrow::after{
  
  position:absolute;
  top:50%;
  width:7px;
  height:7px;
  border-top: 1px solid rgb(213, 213, 213);
  border-right:1px solid rgb(213, 213, 213);
  right:21px;
  transform:translateY(-50%) rotate(45deg);
  transition:border-color .25s ease;
}

.slider-arrow--left::after{
  left:21px;
  right:auto;
  transform:translateY(-50%) rotate(-135deg);
}

.slider-arrow:hover{
  background:rgba(255,255,255,.18);
  border-color:#fff;
  transform:translateY(-50%) scale(1.04);
}

.slider-arrow--left{left:40px;}
.slider-arrow--right{right:40px;}


.hero-dots{
  position:absolute;
  left:50%;
  bottom:50px;
  transform:translateX(-50%);
  z-index:4;
  display:flex;
  align-items:center;
  gap:12px;
}
.hero-dot{
  width:11px;
  height:11px;
  padding:0;
  border:0;
  border-radius:999px;
  background:rgba(255,255,255,.48);
  cursor:pointer;
  transition:transform .25s ease, background .25s ease, opacity .25s ease;
}
.hero-dot:hover{
  background:rgba(255,255,255,.75);
}
.hero-dot.is-active{
  background:#fff;
  transform:scale(1.18);
}


/* ==================== 6. Secciones generales ==================== */
.page-content{
  /* Contenido principal por encima del hero fijo */
  position:relative;
  z-index:5;
  background:var(--bg);
}
.intro{
  position:relative;
  z-index:8;
  padding-top:84px;
  padding-bottom:72px;
  background:var(--bg);
}
h1,h2{margin:0 0 24px;font-size:18px;line-height:1.7;letter-spacing:.02em;font-weight:300;color:var(--text-soft)}
h1{font-size:clamp(28px,2.3vw,28px)}
h2{font-size:clamp(22px,1.8vw,22px)}
.intro p{max-width:1080px;margin:0;font-size:18px;line-height:1.7;font-weight:300;color:var(--text-soft)}


/* ==================== 7. Carrusel de proyectos ==================== */
.projects-section{padding:58px 0 88px;overflow:hidden}
.projects-head,
.projects-carousel,
.projects-latest-carousel,
.projects-gallery .container{
  width:min(calc(100% - 96px), 1600px);
  margin-left:auto;
  margin-right:auto;
}
.projects-head{display:flex;align-items:center;justify-content:space-between;}

.projects-nav{display:flex;gap:12px}

.projects-arrow{
  width:44px;
  height:44px;
  color: #ffffff;
  border:1px solid rgba(88, 58, 54, 0.718);
  border-radius: 50%;
  background:#4a312d;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  position:relative;
  transition:background .25s ease, border-color .25s ease, transform .25s ease;

}

.projects-arrow::before{
  
  position:absolute;
  top:50%;
  left:50%;
  width:18px;
  height:1.5px;
  background:rgba(255,255,255,.10);
  transform:translate(-50%,-50%);
  transition:background .25s ease;
}

.projects-arrow::after{
  
  position:absolute;
  top:50%;
  width:6px;
  height:6px;
  border-top:1.5px #583A36;
  border-right:1.5px #583A36;
  right:14px;
  transform:translateY(-50%) rotate(45deg);
  transition:border-color .25s ease;
}

.projects-arrow.prev::after,
.projects-arrow--prev::after{
  left:14px;
  right:auto;
  transform:translateY(-50%) rotate(-135deg);
}

.projects-arrow:hover{
  background:#583A36;;
  border-color:#583A36;
  transform:translateY(-1px);
}

.projects-arrow:hover::before{
  background:#583A36;;
}

.projects-arrow:hover::after{
  border-color:#583A36;;
}


.projects-carousel{
  overflow:hidden;
  cursor:default;
  user-select:none;
  touch-action:pan-y;
}
.projects-carousel.is-dragging{cursor:default}
.projects-track{
  /* Track horizontal del carrusel */
  display:flex;
  gap:18px;
  will-change:transform;
  transition:transform .65s cubic-bezier(.22,.61,.36,1);
}
.projects-carousel.is-dragging .projects-track{transition:none}

.project-card{
  flex:0 0 calc((100% - 36px) / 2.18);
  width:calc((100% - 36px) / 2.18);
  display:flex;
  flex-direction:column;
  gap:12px;
  cursor:pointer;
  -webkit-user-drag:none;
}
.project-card:active{cursor:pointer}
.project-card *{-webkit-user-drag:none}

.project-image-wrap{
  position:relative;
  aspect-ratio:1.8 / 1;
  overflow:hidden;
  background:var(--bg-soft);
}

/* Tinte marrón por defecto en las imágenes del slider de proyectos de Home */
.project-image-wrap::after{
  content:"";
  position:absolute;
  inset:0;
  background:var(--overlay-brown);
  pointer-events:none;
  transition:opacity .35s ease;
  z-index:1;
}

.project-image-title{
  position:absolute;
  inset:0;
  z-index:2;
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  padding:24px;
  margin:0;
  text-align:center;
  pointer-events:none;
  overflow:hidden;
  font-family:'Bacalisties', cursive;
  font-size:clamp(40px, 4.2vw, 78px);
  line-height:.92;
  letter-spacing:.01em;
  color:#fff;
  font-weight:400;
  text-transform:none;
  white-space:normal;
  text-wrap:balance;
  opacity:1;
  transform:none;
  transition:opacity .25s ease;
}

.project-image-wrap img{
  width:100%;
  height:100%;
  object-fit:cover;
  /* Pequeño zoom interior al hacer hover para dar sensación de ampliación */
  transform:scale(1);
  transform-origin:center center;
  transition:transform .65s ease;
  pointer-events:none;
}

.project-card:hover .project-image-wrap::after,
.project-card:focus-visible .project-image-wrap::after{
  opacity:0;
}

.project-card:hover .project-image-title,
.project-card:focus-visible .project-image-title{
  opacity:0;
  transform:none;
}

.project-card:hover .project-image-wrap img,
.project-card:focus-visible .project-image-wrap img{
  transform:scale(1.06);
}


.project-caption{
  min-height:34px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:20px;
  align-items:start;
  opacity:0;
  transform:translateY(10px);
  transition:opacity .25s ease, transform .25s ease;
  pointer-events:none;
}
.project-card:hover .project-caption,
.project-card:focus-visible .project-caption{
  opacity:1;
  transform:translateY(0);
}
.project-title,
.project-type{
  font-size:15px;
  line-height:1.35;
  color:#5b4c49;
}
.project-title{
  font-weight:600;
  letter-spacing:.03em;
  text-transform:uppercase;
}
.project-type{
  font-weight:400;
  white-space:nowrap;
}
.project-type{
  text-align:right;
}
.project-desc{
  grid-column:2;
  font-family:'Montserrat', sans-serif;
  font-style:italic;
  font-size:14px;
  line-height:1.35;
  color:#5b4c49;
  opacity:.78;
  text-align:right;
  max-width:420px;
  justify-self:end;
  margin-top:6px;
  white-space:nowrap;
}

/* ==================== 7B. Página Projects / Últimos proyectos (estilos aislados) ==================== */
.projects-latest-carousel{
  overflow:hidden;
  cursor:default;
  user-select:none;
  touch-action:pan-y;
}
.projects-latest-carousel.is-dragging{cursor:default}
.projects-latest-track{
  /* Track horizontal del carrusel */
  display:flex;
  gap:18px;
  will-change:transform;
  transition:transform .65s cubic-bezier(.22,.61,.36,1);
}
.projects-latest-carousel.is-dragging .projects-latest-track{transition:none}

.projects-latest-card{
  flex:0 0 calc((100% - 36px) / 2.18);
  width:calc((100% - 36px) / 2.18);
  display:flex;
  flex-direction:column;
  gap:12px;
  cursor:pointer;
  -webkit-user-drag:none;
}
.projects-latest-card:active{cursor:pointer}
.projects-latest-card *{-webkit-user-drag:none}

.projects-latest-image-wrap{
  position:relative;
  aspect-ratio:1.8 / 1;
  overflow:hidden;
  background:var(--bg-soft);
}

/* Tinte marrón por defecto en las imágenes del slider de proyectos de Home */
.projects-latest-image-wrap::after{
  content:"";
  position:absolute;
  inset:0;
  background:var(--overlay-brown);
  pointer-events:none;
  transition:opacity .35s ease;
  z-index:1;
}

.projects-latest-image-title{
  position:absolute;
  inset:0;
  z-index:2;
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  padding:24px;
  margin:0;
  text-align:center;
  pointer-events:none;
  overflow:hidden;
  font-family:'Bacalisties', cursive;
  font-size:clamp(40px, 4.2vw, 78px);
  line-height:.92;
  letter-spacing:.01em;
  color:#fff;
  font-weight:400;
  text-transform:none;
  white-space:normal;
  text-wrap:balance;
  opacity:1;
  transform:none;
  transition:opacity .25s ease;
}

.projects-latest-image-wrap img{
  width:100%;
  height:100%;
  object-fit:cover;
  /* Pequeño zoom interior al hacer hover para dar sensación de ampliación */
  transform:scale(1);
  transform-origin:center center;
  transition:transform .65s ease;
  pointer-events:none;
}

.projects-latest-card:hover .projects-latest-image-wrap::after,
.projects-latest-card:focus-visible .projects-latest-image-wrap::after{
  opacity:0;
}

.projects-latest-card:hover .projects-latest-image-title,
.projects-latest-card:focus-visible .projects-latest-image-title{
  opacity:0;
  transform:none;
}

.projects-latest-card:hover .projects-latest-image-wrap img,
.projects-latest-card:focus-visible .projects-latest-image-wrap img{
  transform:scale(1.06);
}


.projects-latest-caption{
  min-height:34px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:20px;
  align-items:start;
  opacity:0;
  transform:translateY(10px);
  transition:opacity .25s ease, transform .25s ease;
  pointer-events:none;
}
.projects-latest-card:hover .projects-latest-caption,
.projects-latest-card:focus-visible .projects-latest-caption{
  opacity:1;
  transform:translateY(0);
}
.projects-latest-title,
.projects-latest-type{
  font-size:15px;
  line-height:1.35;
  color:#5b4c49;
}
.projects-latest-title{
  font-weight:600;
  letter-spacing:.03em;
  text-transform:uppercase;
}
.projects-latest-type{
  font-weight:400;
  white-space:nowrap;
}
.projects-latest-type{
  text-align:right;
}
.projects-latest-desc{
  grid-column:2;
  font-family:'Montserrat', sans-serif;
  font-style:italic;
  font-size:14px;
  line-height:1.35;
  color:#5b4c49;
  opacity:.78;
  text-align:right;
  max-width:420px;
  justify-self:end;
  margin-top:6px;
  white-space:nowrap;
}

@media (max-width: 1100px){
  .projects-head,
.projects-carousel,
.projects-latest-carousel,
.projects-gallery .container{
  width:min(calc(100% - 64px), 1600px);
  margin-left:auto;
  margin-right:auto;
}
  .project-card{flex-basis:calc((100% - 18px) / 1.9);width:calc((100% - 18px) / 1.9)}
  .projects-latest-card{flex-basis:calc((100% - 18px) / 1.9);width:calc((100% - 18px) / 1.9)}
  .project-caption{
    grid-template-columns:1fr;
    gap:6px;
    min-height:70px;
  }
  .project-type{text-align:left}
  .project-desc{grid-column:1;text-align:left;justify-self:start;max-width:100%;margin-top:0}
}

@media (max-width: 1200px){
  .container{width:min(calc(100% - 64px), 1600px)}
  .header-inner{width:min(calc(100% - 64px), 1600px)}
  .footer-shell{width:min(calc(100% - 64px), 1600px)}
}

@media (max-width: 768px){
  .container{width:min(calc(100% - 32px),var(--container))}
  .header-inner{
    width:min(calc(100% - 32px), 1180px);
    grid-template-columns:auto 1fr auto;
    min-height:96px;
  }
  .brand{grid-column:1;justify-self:start;align-self:center}
  .brand img{width:112px}
  .nav-toggle{display:inline-flex;grid-column:3;justify-self:end;align-self:center}
  .site-nav{position:absolute;top:100%;left:0;right:0;display:none;flex-direction:column;align-items:flex-start;gap:18px;padding:24px 16px 28px;background:rgba(255,255,255,.98);border-bottom:1px solid var(--border)}
  .site-nav.is-open{display:flex}
  .hero-fixed-shell{
    height:72vh;
    min-height:420px;
  }
  .hero-fixed{
    height:72vh;
    min-height:420px;
  }
  .slider-arrow{width:52px;height:52px}
  .slider-arrow::before{width:18px}
  .slider-arrow::after{right:17px;width:6px;height:6px}
  .slider-arrow--left::after{left:17px;right:auto}
  .slider-arrow--left{left:18px}
  .slider-arrow--right{right:18px}
  .hero-dots{bottom:22px;gap:10px}
  .hero-dot{width:10px;height:10px}
  .intro{padding-top:56px;padding-bottom:56px}
  .intro p{font-size:16px}
  .projects-head,
.projects-carousel,
.projects-latest-carousel,
.projects-gallery .container{
  width:min(calc(100% - 32px), 1600px);
  margin-left:auto;
  margin-right:auto;
}
  .projects-head{margin-bottom:20px}
  .projects-arrow{width:42px;height:42px}
  .project-card{flex-basis:84vw;width:84vw}
  .project-caption{
    opacity:1;
    transform:none;
    grid-template-columns:1fr;
    gap:6px;
    min-height:68px;
  }
  .project-title,.project-type{font-size:14px}
  .project-type{text-align:left}
  .project-desc{grid-column:1;text-align:left;justify-self:start;max-width:100%;margin-top:0}
  .projects-latest-card{flex-basis:84vw;width:84vw}
  .projects-latest-caption{
    opacity:1;
    transform:none;
    grid-template-columns:1fr;
    gap:6px;
    min-height:68px;
  }
  .projects-latest-title,.projects-latest-type{font-size:14px}
  .projects-latest-type{text-align:left}
  .projects-latest-desc{grid-column:1;text-align:left;justify-self:start;max-width:100%;margin-top:0}
}


/* ==================== 11. Footer ==================== */
.site-footer{
  /* Footer sólido para tapar el hero al final del scroll */
  position:relative;
  z-index:20;
  background:var(--bg);
  margin-top:0;
  padding:38px 0 16px;
  clear:both;
  overflow:hidden;
}
.footer-shell{
  width:min(calc(100% - 96px), 1600px);
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  align-items:start;
  gap:40px;
}
.footer-left{
  display:flex;
  align-items:center;
  min-height:150px;
}
.footer-brand img{
  width:180px;
  height:auto;
  display:block;
}
.footer-center{
  text-align:center;
  min-height:150px;
}
.footer-center h3{
  margin:0 0 22px;
  font-size:18px;
  line-height:1.15;
  letter-spacing:.03em;
  font-weight:400;
  color:#583a36;
}
.footer-center p{
  margin:3px 0;
  font-size:16px;
  line-height:1.5;
  color:#583a36;
}
.footer-center a{
  color:#583a36;
}
.footer-right{
  min-height:150px;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  justify-content:flex-start;
  gap:0;
}
.footer-socials{
  display:flex;
  align-items:center;
  gap:16px;
}
.footer-socials a{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  color:#111;
}
.footer-socials svg{
  width:100%;
  height:100%;
  fill:currentColor;
}
.footer-socials a:hover,
.footer-legal a:hover,
.footer-center a:hover{
  opacity:.65;
}
.footer-legal{
  width:min(calc(100% - 96px), 1600px);
  margin:40px auto 0;
  text-align:center;
  font-size:13px;
  line-height:1.5;
  color:#111;
}
.footer-legal a{
  color:#111;
}

@media (max-width: 900px){
  .site-footer{
    margin-top:0;
    padding:34px 0 20px;
  }
  .footer-shell,
  .footer-legal{
    width:min(calc(100% - 32px), 1600px);
  }
  .footer-shell{
    grid-template-columns:1fr;
    gap:26px;
  }
  .footer-left,
  .footer-center,
  .footer-right{
    min-height:auto;
    align-items:center;
    justify-content:center;
    text-align:center;
  }
  .footer-right{
    align-items:center;
  }
  .footer-brand img{
    width:140px;
  }
  .footer-socials{
    justify-content:center;
  }
  .footer-legal{
    margin-top:34px;
    font-size:12px;
  }
}

h1,h2,h3,.section-title,.intro h2{
  font-family:'Montserrat', serif;
}


/* PROJECTS PAGE */
.projects-main{
  position:relative;
  z-index:5;
  background:var(--bg);
}
.projects-page .site-header{
  position:fixed;
  top:0;
  left:0;
  width:100%;
}
.projects-hero-shell{
  position:relative;
  height:100vh;
  min-height:640px;
}
.projects-hero{
  padding-top:0;
}
.projects-hero-slider{
  position:fixed;
  inset:0;
  width:100%;
  height:100vh;
  min-height:640px;
  z-index:0;
  overflow:hidden;
}
.projects-hero-slides,
.projects-hero-slide{
  height:100%;
}
.projects-hero-slides{
  position:relative;
}
.projects-hero-slide{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center center;
  opacity:0;
  transition:opacity .8s ease;
}
.projects-hero-slide.is-active{
  opacity:1;
}
.projects-hero-slider::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to bottom, rgba(0,0,0,.12), rgba(0,0,0,.08));
  pointer-events:none;
}
.projects-hero-title{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  z-index:3;
  color:#fff;
  font-family:'Montserrat', serif;
  font-weight: 300;
  font-size:clamp(30px, 4vw, 40px);
  letter-spacing:.08em;
  text-transform:uppercase;
  text-align:center;
  white-space:nowrap;
}
.projects-strip{
  padding-top:44px;
  padding-bottom:58px;
}
.projects-strip h2,
.projects-gallery h2{
  margin-bottom:24px;
  font-size:clamp(18px,1.5vw,22px);
}


/* LATEST PROJECTS editorial layout */
.projects-gallery{
  padding-top:18px;
  padding-bottom:90px;
}

.projects-masonry--editorial{
  display:grid;
  grid-template-columns:repeat(12, minmax(0, 1fr));
  column-gap:42px;
  row-gap:38px;
  align-items:start;
}

.projects-masonry--editorial .masonry-card{
  display:block;
  overflow:visible;
}

.projects-masonry--editorial .masonry-media{
  display:block;
  width:100%;
  overflow:hidden;
}

.projects-masonry--editorial .masonry-media img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transform:scale(1);
  transform-origin:center center;
  transition:transform .55s ease;
  will-change:transform;
}

.projects-masonry--editorial .masonry-card:hover .masonry-media img,
.projects-masonry--editorial .masonry-card:focus-visible .masonry-media img{
  transform:scale(1.04);
}

.projects-masonry--editorial .masonry-caption{
  display:block;
  margin-top:14px;
  font-size:16px;
  line-height:1.2;
  letter-spacing:.02em;
  text-transform:uppercase;
  font-weight:600;
  color:#5b4c49;
  opacity:0;
  transform:translateY(6px);
  transition:opacity .22s ease, transform .22s ease;
}

.projects-masonry--editorial .masonry-card:hover .masonry-caption,
.projects-masonry--editorial .masonry-card:focus-visible .masonry-caption{
  opacity:1;
  transform:translateY(0);
}

.projects-masonry--editorial .masonry-card--a{grid-column:1 / span 4;}
.projects-masonry--editorial .masonry-card--a .masonry-media{aspect-ratio:0.72 / 1;}

.projects-masonry--editorial .masonry-card--b{grid-column:5 / span 3;}
.projects-masonry--editorial .masonry-card--b .masonry-media{aspect-ratio:0.70 / 1;}

.projects-masonry--editorial .masonry-card--c{grid-column:8 / span 5;}
.projects-masonry--editorial .masonry-card--c .masonry-media{aspect-ratio:0.66 / 1.36;}

.projects-masonry--editorial .masonry-card--d{grid-column:1 / span 6;}
.projects-masonry--editorial .masonry-card--d .masonry-media{aspect-ratio:1.08 / 1;}

.projects-masonry--editorial .masonry-card--e{grid-column:8 / span 4;}
.projects-masonry--editorial .masonry-card--e .masonry-media{aspect-ratio:1 / 1;}

.projects-masonry--editorial .masonry-card--f{grid-column:2 / span 3;}
.projects-masonry--editorial .masonry-card--f .masonry-media{aspect-ratio:0.72 / 1;}

.projects-masonry--editorial .masonry-card--g{grid-column:8 / span 3;}
.projects-masonry--editorial .masonry-card--g .masonry-media{aspect-ratio:0.72 / 1;}

.projects-masonry--editorial .masonry-card--h{grid-column:1 / span 6;}
.projects-masonry--editorial .masonry-card--h .masonry-media{aspect-ratio:1.5 / 1;}

.projects-masonry--editorial .masonry-card--i{grid-column:8 / span 3;}
.projects-masonry--editorial .masonry-card--i .masonry-media{aspect-ratio:0.72 / 1;}

@media (max-width: 1100px){
  .projects-masonry--editorial{
    grid-template-columns:repeat(6, minmax(0,1fr));
    gap:28px;
  }

  .projects-masonry--editorial .masonry-card--a{grid-column:1 / span 3;}
  .projects-masonry--editorial .masonry-card--b{grid-column:4 / span 3;}
  .projects-masonry--editorial .masonry-card--c{grid-column:1 / span 3;}
  .projects-masonry--editorial .masonry-card--d{grid-column:1 / span 6;}
  .projects-masonry--editorial .masonry-card--e{grid-column:4 / span 3;}
  .projects-masonry--editorial .masonry-card--f{grid-column:1 / span 3;}
  .projects-masonry--editorial .masonry-card--g{grid-column:4 / span 3;}
  .projects-masonry--editorial .masonry-card--h{grid-column:1 / span 6;}
  .projects-masonry--editorial .masonry-card--i{grid-column:4 / span 3;}
}

@media (max-width: 768px){
  .projects-gallery{
    padding-top:10px;
    padding-bottom:60px;
  }

  .projects-masonry--editorial{
    grid-template-columns:1fr 1fr;
    gap:18px;
  }

  .projects-masonry--editorial .masonry-caption{
    opacity:1;
    transform:none;
    margin-top:10px;
    font-size:14px;
  }

  .projects-masonry--editorial .masonry-card--a,
  .projects-masonry--editorial .masonry-card--b,
  .projects-masonry--editorial .masonry-card--c,
  .projects-masonry--editorial .masonry-card--e,
  .projects-masonry--editorial .masonry-card--f,
  .projects-masonry--editorial .masonry-card--g,
  .projects-masonry--editorial .masonry-card--i{
    grid-column:span 1;
  }

  .projects-masonry--editorial .masonry-card--d,
  .projects-masonry--editorial .masonry-card--h{
    grid-column:span 2;
  }
}


@media (max-width: 768px){
  .projects-hero-shell{
    height:72vh;
    min-height:420px;
  }

  .projects-hero-slider{
    position:relative;
    inset:auto;
    height:72vh;
    min-height:420px;
  }
}

/* TEAM PAGE */
.team-main{
  position:relative;
  z-index:5;
  background:var(--bg);
}

.team-hero-shell{
  position:relative;
  height:100vh;
  min-height:640px;
}


/* ==================== 9. Equipo ==================== */
.team-hero{
  position:fixed;
  inset:0;
  width:100%;
  height:100vh;
  min-height:640px;
  z-index:0;
  overflow:hidden;
}

.team-hero img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:grayscale(100%);
}

.team-hero-title{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  color:#fff;
  font-family:'Montserrat', serif;
  font-size:clamp(28px,3vw,45px);
  letter-spacing:.04em;
  text-transform:uppercase;
}

.team-intro{
  padding-top:42px;
  padding-bottom:28px;
}

.team-intro h1{
  margin-bottom:18px;
  max-width:12ch;
}


.team-intro p{
  max-width:1100px;
  margin:0;
  font-size:18px;
  line-height:1.77;
  font-weight:400;
  color:var(--text-soft);
}

.team-grid{
  padding-top:0;
  padding-bottom:36px;
}

.team-members{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
  align-items:start;
}

.team-member{
  color:inherit;
}

.team-member-photo{
  width:100%;
  aspect-ratio:.89 / 1;
  overflow:hidden;
  background:var(--bg-soft);
}

.team-member-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:grayscale(100%);
}

.team-member-meta{
  padding-top:14px;
  font-size:0;
}

.team-member-name{
  font-size:16px;
  font-weight:600;
  color:#583a36;
}

.team-member-role{
  font-size:15px;
  color:var(--text-soft);
}

.team-member-bio{
  margin-top:18px;
  font-size:15px;
  line-height:1.55;
  color:var(--text-soft);
}

.team-banner{margin-top:0;position:relative;z-index:2;background:var(--bg)}

.team-banner img{
  width:100%;
  display:block;
  vertical-align:top;
  filter:grayscale(100%);
}

@media (max-width: 768px){
  .team-hero-shell{
    height:54vw;
    min-height:220px;
  }

  .team-hero{
    position:relative;
    inset:auto;
    height:90vw;
    min-height:220px;
  }

  .team-members{
    grid-template-columns:1fr;
    gap:28px;
  }

  .team-intro{
    padding-top:28px;
    padding-bottom:24px;
  }

  .team-member-bio,
  .team-intro p{
    font-size:14px;
  }
}


/* INDIVIDUAL PROJECT PAGE */
.project-detail-page .site-header{
  position:fixed;
  top:0;
  left:0;
  width:100%;
}
.project-detail-main{
  position:relative;
  z-index:5;
  background:var(--bg);
}
.project-detail-hero{
  position:relative;
  height:100vh;
  min-height:640px;
  overflow:hidden;
}
.project-detail-hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to bottom, rgba(0,0,0,.15), rgba(0,0,0,.1));
  pointer-events:none;
}
.project-detail-hero-media,
.project-detail-hero-media img{
  width:100%;
  height:100%;
}
.project-detail-hero-media img{
  object-fit:cover;
  display:block;
}
.project-detail-title{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  z-index:3;
  width:min(calc(100% - 48px), 1200px);
  text-align:center;
  color:#fff;
  font-size:clamp(30px,4vw,40px);
  line-height:1.05;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:300;
}
.project-intro{
  padding:140px 0 118px;
  background:#f5f3f2;
}
.project-intro-inner{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(0, 2fr);
  align-items:start;
}
.project-intro-copy{
  grid-column:2;
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:80px;
}
.project-intro-copy p{
  margin:0;
  font-size:15px;
  line-height:1.65;
  font-weight:400;
  color:#716766;
}
.project-intro + .project-detail-gallery{
  padding-top:0;
}

.project-detail-gallery{
  padding:72px 0 104px;
}
.project-detail-grid{
  display:grid;
  grid-template-columns:repeat(12, minmax(0, 1fr));
  gap:16px;
}
.project-shot{
  display:block;
  overflow:hidden;
  background:var(--bg-soft);
}
.project-shot img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.project-shot--a{grid-column:1 / span 6; aspect-ratio:0.95 / 1;}
.project-shot--b{grid-column:7 / span 3; aspect-ratio:0.72 / 1;}
.project-shot--c{grid-column:10 / span 3; aspect-ratio:0.72 / 1;}
.project-shot--d{grid-column:1 / span 12; aspect-ratio:1.95 / 1; margin-top:40px;}
.project-shot--e{grid-column:1 / span 3; aspect-ratio:0.72 / 1; margin-top:40px;}
.project-shot--f{grid-column:4 / span 3; aspect-ratio:0.72 / 1; margin-top:40px;}
.project-shot--g{grid-column:7 / span 6; aspect-ratio:1 / 1; margin-top:40px;}
.project-shot--h{grid-column:1 / span 6; aspect-ratio:0.95 / 1; margin-top:40px;}
.project-shot--i{grid-column:7 / span 3; aspect-ratio:0.72 / 1; margin-top:40px;}
.project-shot--j{grid-column:10 / span 3; aspect-ratio:0.72 / 1; margin-top:40px;}
.project-shot--k{grid-column:1 / span 3; aspect-ratio:0.72 / 1; margin-top:40px;}
.project-shot--l{grid-column:7 / span 6; aspect-ratio:0.95 / 1; margin-top:40px;}
.project-shot--m{grid-column:1 / span 12; aspect-ratio:1.55 / 1; margin-top:40px;}

@media (max-width: 1100px){
  .project-detail-hero{height:100vh; min-height:640px;}
  .project-detail-grid{
    grid-template-columns:repeat(6, minmax(0, 1fr));
    gap:14px;
  }
  .project-shot--a{grid-column:1 / span 4;}
  .project-shot--b{grid-column:5 / span 2;}
  .project-shot--c{grid-column:5 / span 2;}
  .project-shot--d{grid-column:1 / span 6;}
  .project-shot--e{grid-column:1 / span 2;}
  .project-shot--f{grid-column:3 / span 2;}
  .project-shot--g{grid-column:5 / span 2; aspect-ratio:0.72 / 1;}
  .project-shot--h{grid-column:1 / span 4;}
  .project-shot--i{grid-column:5 / span 2;}
  .project-shot--j{grid-column:5 / span 2;}
  .project-shot--k{grid-column:1 / span 2;}
  .project-shot--l{grid-column:3 / span 4;}
  .project-shot--m{grid-column:1 / span 6; aspect-ratio:1.25 / 1;}
}

@media (max-width: 768px){
  .project-intro{
    padding:88px 0 76px;
  }
  .project-intro-inner{
    grid-template-columns:1fr;
  }
  .project-intro-copy{
    grid-column:1;
    grid-template-columns:1fr;
    gap:24px;
  }
  .project-intro-copy p{
    font-size:14px;
    line-height:1.7;
  }

  .project-detail-hero{
    height:54vh;
    min-height:340px;
  }
  .project-detail-title{
    width:min(calc(100% - 32px), 760px);
    font-size:clamp(26px,7vw,34px);
  }
  .project-detail-gallery{
    padding:40px 0 68px;
  }
  .project-detail-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:12px;
  }
  .project-shot,
  .project-shot--a,
  .project-shot--b,
  .project-shot--c,
  .project-shot--d,
  .project-shot--e,
  .project-shot--f,
  .project-shot--g,
  .project-shot--h,
  .project-shot--i,
  .project-shot--j,
  .project-shot--k,
  .project-shot--l,
  .project-shot--m{
    grid-column:span 1;
    aspect-ratio:0.82 / 1;
    margin-top:0;
  }
  .project-shot--d,
  .project-shot--g,
  .project-shot--h,
  .project-shot--l,
  .project-shot--m{
    grid-column:1 / -1;
    aspect-ratio:1.35 / 1;
  }
}


.eyebrow{
  margin:0 0 14px;
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--accent);
}

.section-heading{max-width:980px;margin-bottom:32px}
.section-heading h2,
.intro-copy h1,
.hero-title,
.team-intro h1,
.method-hero h1{
  font-size:clamp(25px,3.9vw,25px);
  line-height:1.14;
  letter-spacing:-.040em;
  text-wrap:pretty;
}
.section-heading h2{margin-bottom:0;max-width:40ch}

.intro-inner--home{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(320px,.8fr);
  gap:42px;
  align-items:start;
}
.intro-copy h1,.hero-title{margin-bottom:20px;max-width:40ch}
.intro-copy p + p{margin-top:20px}
.intro-aside{display:grid;gap:18px}
.value-card{
  background:rgba(255,255,255,.5);
  border:1px solid rgba(122,100,96,.12);
  padding:26px 24px;
}
.value-card h2{margin-bottom:14px;font-size:24px}
.value-card p{margin:0;font-size:15px;line-height:1.7;color:var(--text-soft)}
.value-list{margin:0;padding-left:18px;display:grid;gap:10px;color:var(--text-soft);font-size:15px;line-height:1.6}
.value-card--soft{background:rgba(122,100,96,.06)}

.value-card.is-animated-right{
  opacity:0;
  transform:translateX(48px);
  transition:opacity 1s ease, transform 1s cubic-bezier(.22,.61,.36,1), box-shadow .35s ease, background .35s ease;
  transition-delay:var(--value-card-delay,0ms);
  will-change:transform,opacity;
}
.value-card.is-animated-right.is-visible{
  opacity:1;
  transform:translateX(0);
}

.value-card--no-hover:hover{
  background:rgba(255,255,255,.5);
  border-color:rgba(122,100,96,.12);
  box-shadow:none;
}
.value-card--soft.value-card--no-hover:hover{
  background:rgba(122,100,96,.06);
}


.home-principles{padding-top:0;padding-bottom:92px}
.principles-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.principle-card{
  min-height:220px;
  padding:28px;
  border:1px solid rgba(122,100,96,.12);
  background:var(--bg-card);
}
.principle-card.is-animated{
  opacity:0;
  transform:translateY(26px);
  transition:opacity 1s ease, transform 1s cubic-bezier(.22,.61,.36,1), box-shadow .35s ease, background .35s ease;
  transition-delay:var(--principle-delay,0ms);
  will-change:transform,opacity;
}
.principle-card.is-animated.is-visible{
  opacity:1;
  transform:translateY(0);
}
.principle-card.is-animated:hover{
  background:var(--bg-card-hover);
  box-shadow:0 16px 34px rgba(122,100,96,.08);
}
.principle-card h3{margin:0 0 14px;font-size:22px;font-weight:400;color:var(--accent)}
.principle-card p{margin:0;color:var(--text-soft);font-size:15px;line-height:1.75}

.scroll-rise-up{
  opacity:0;
  transform:translateY(34px);
  transition:opacity 1s ease, transform 1s cubic-bezier(.22,.61,.36,1);
  transition-delay:var(--scroll-rise-delay,0ms);
  will-change:transform,opacity;
}
.scroll-rise-up.is-visible{
  opacity:1;
  transform:translateY(0);
}

.latest-project-card-rise{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .62s ease, transform .62s cubic-bezier(.22,.61,.36,1);
  transition-delay:var(--latest-project-delay,0ms);
  will-change:transform,opacity;
}
.latest-project-card-rise.is-visible{
  opacity:1;
  transform:translateY(0);
}

.team-intro-grid{
  display:grid;
  grid-template-columns:minmax(220px,.3fr) minmax(0,1.3fr);
  gap:44px;
  align-items:start;
}
.team-intro p{max-width:none}
.team-members--bios{align-items:start}
.team-member--detailed{display:flex;flex-direction:column;gap:16px}
.team-member-role{display:block;margin-top:8px;color:var(--text-soft)}
.team-member-text{margin:0;color:var(--text-soft);font-size:15px;line-height:1.75}
.team-values{
  margin-top:38px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.team-value-card{
  padding:28px;
  background:var(--bg-card);
  border:1px solid rgba(122,100,96,.12);
}
.team-value-card h2{font-size:24px;margin-bottom:14px}
.team-value-card p{margin:0;color:var(--text-soft);line-height:1.75;font-size:15px}

.method-page .page-content,
.method-main,
.team-main,
.projects-main,
.project-detail-main{padding-top:112px}

/* ==================== 10. Método AL·MA ==================== */
.method-hero{padding-bottom:18px}
.method-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:44px;
}
.method-hero h1{margin-bottom:0;max-width:40ch}
.method-hero p{margin:0;color:var(--text-soft);font-size:18px;line-height:1.8}
.method-hero p + p{margin-top:18px}
.method-principles{padding-top:18px}
.method-pillars{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:16px;
}
.method-pillar{
  padding:22px 20px 24px;
  border-top:1px solid rgba(122,100,96,.28);
  background:rgba(255,255,255,.35);
  opacity:0;
  transform:translateY(26px);
  transition:opacity 1s ease, transform 1s cubic-bezier(.22,.61,.36,1), box-shadow .35s ease, background .35s ease;
  transition-delay:var(--pillar-delay,0ms);
  will-change:transform,opacity;
}
.method-pillar.is-visible{
  opacity:1;
  transform:translateY(0);
}
.method-pillar:hover{
  background:rgba(255,255,255,.5);
  box-shadow:0 16px 34px rgba(122,100,96,.08);
}
.method-pillar span,
.method-step-number{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:54px;
  height:54px;
  margin-bottom:18px;
  border-radius:50%;
  background:#7a6460;
  color:#fff;
  font-size:12px;
  letter-spacing:.14em;
  flex-shrink:0;
}
.method-pillar h3,
.method-step-card h3{margin:0;font-size:20px;font-weight:400;color:var(--accent);line-height:1.3}
.method-pillar p{margin:18px 0 0;color:var(--text-soft);font-size:15px;line-height:1.7}
.method-step-list{display:grid;gap:18px}
.method-step-card{
  background:var(--bg-card);
  border:1px solid rgba(122,100,96,.12);
  overflow:hidden;
  opacity:0;
  transform:translateY(26px);
  transition:opacity 1s ease, transform 1s cubic-bezier(.22,.61,.36,1), background .3s ease, border-color .3s ease, box-shadow .3s ease;
  transition-delay:var(--step-card-delay,0ms);
  will-change:transform,opacity;
}
.method-step-card.is-visible{
  opacity:1;
  transform:translateY(0);
}
.method-step-card:hover{
  background:var(--bg-card-hover);
  border-color:rgba(122,100,96,.18);
  box-shadow:0 16px 34px rgba(122,100,96,.06);
}
.method-step-toggle{
  width:100%;
  display:grid;
  grid-template-columns:72px minmax(0,1fr) 24px;
  align-items:center;
  gap:24px;
  padding:28px;
  border:0;
  background:transparent;
  text-align:left;
  cursor:pointer;
  color:inherit;
}
.method-step-toggle:focus-visible{
  outline:2px solid rgba(122,100,96,.45);
  outline-offset:-2px;
}
.method-step-number{margin-bottom:0}
.method-step-heading p{margin:10px 0 0;color:var(--text-soft);font-size:15px;line-height:1.7}
.method-step-icon{
  position:relative;
  width:20px;
  height:20px;
  display:block;
}
.method-step-icon::before,
.method-step-icon::after{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:16px;
  height:1.5px;
  background:#7a6460;
  transform:translate(-50%,-50%);
  transition:transform .25s ease, opacity .25s ease;
}
.method-step-icon::after{
  transform:translate(-50%,-50%) rotate(90deg);
}
.method-step-card.is-open .method-step-icon::after{
  opacity:0;
  transform:translate(-50%,-50%) rotate(90deg) scaleX(.2);
}
.method-step-content{
  max-height:0;
  opacity:0;
  overflow:hidden;
  visibility:hidden;
  transform:translateY(-10px);
  transition:max-height .7s cubic-bezier(.22,.61,.36,1), opacity .42s ease, transform .7s cubic-bezier(.22,.61,.36,1), visibility 0s linear .7s;
}
.method-step-content > *{
  min-height:0;
}
.method-step-card.is-open .method-step-content{
  max-height:420px;
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  transition:max-height .7s cubic-bezier(.22,.61,.36,1), opacity .42s ease .08s, transform .7s cubic-bezier(.22,.61,.36,1);
}
.method-step-card ul{
  margin:0;
  padding:0 28px 28px 114px;
  display:grid;
  gap:10px;
  color:var(--text-soft);
  font-size:15px;
  line-height:1.7;
}


/* ==================== 12. Responsive ==================== */
@media (max-width: 980px){
  .intro-inner--home,
  .team-intro-grid,
  .method-hero-grid{grid-template-columns:1fr}
  .principles-grid,
  .team-values{grid-template-columns:1fr}
  .method-pillars{grid-template-columns:1fr 1fr}
}

@media (max-width: 720px){
  .section-heading h2,
  .intro-copy h1,
  .hero-title,
  .team-intro h1,
  .method-hero h1{font-size:clamp(25px,9vw,27px)}
  .principle-card,
  .team-value-card,
  .method-pillars{grid-template-columns:1fr}
  .method-step-toggle{grid-template-columns:1fr;gap:14px;padding:22px}
  .method-step-card ul{padding:0 22px 22px 22px}
}


/* Hero stacking fix for projects and team pages */
.projects-page,
.team-page{
  background:var(--bg);
}

.projects-hero,
.team-hero{
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
}

.projects-hero .slider-arrow,
.projects-hero .projects-hero-title{
  pointer-events:auto;
  color: white;
}

.projects-main,
.team-main,
.projects-main > :not(.projects-hero):not(.projects-hero-shell),
.team-main > :not(.team-hero):not(.team-hero-shell),
.projects-page .site-footer,
.team-page .site-footer{
  position:relative;
  z-index:2;
  background:var(--bg);
}

.projects-strip,
.projects-gallery,
.team-intro,
.team-grid,
.team-banner{
  position:relative;
  z-index:2;
}

.projects-page .site-footer,
.team-page .site-footer{
  z-index:3;
  margin-top:0;
  border-top:1px solid rgba(140,111,104,.12);
}

.team-banner img{
  width:100%;
  display:block;
}


/* Prevent the fixed hero from appearing under the footer on macOS/iOS overscroll */
html::before{
  content:"";
  position:fixed;
  inset:0;
  background:var(--bg);
  z-index:-2;
  pointer-events:none;
}


/* Final stacking hardening */
.team-grid{
  position:relative;
  z-index:2;
  background:var(--bg);
}

.team-banner{
  overflow:hidden;
}


/* === CUSTOM COLOR OVERRIDES === */
h1, h2, h3, h4, h5, h6 {
  color: var(--color-primary) ;
}

footer, footer a {
  color: var(--color-primary) !important;
}

footer i {
  color: var(--color-primary) !important;
}

.footer-legal a {
  color: var(--color-primary) !important;
}


/* Slider home: flechas ocultas porque se usan dots inferiores */
.hero-arrow-prev,
.hero-arrow-next{display:none !important;}

/* =========================================================

@media (max-width: 768px){
  .project-image-title{
    font-size:clamp(28px, 8vw, 44px);
    padding:18px;
  }
}

LEGAL PAGES
   ========================================================= */
body.legal-page{
  background:var(--bg);
}
.legal-main{
  padding-top:110px;
}
.legal-hero{
  padding:48px 0 12px;
}
.legal-shell{
  width:min(calc(100% - 48px), 980px);
  margin:0 auto;
}
.eyebrow{
  margin:0 0 12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-size:12px;
  opacity:.72;
}
.legal-hero h1{
  margin:0 0 18px;
  font-size:clamp(36px, 6vw, 68px);
  line-height:.95;
}
.legal-intro{
  max-width:760px;
  font-size:18px;
  line-height:1.65;
}
.legal-content-section{
  padding:22px 0 72px;
}
.legal-richtext{
  background:rgba(255,255,255,.58);
  border:1px solid rgba(88,58,54,.12);
  border-radius:28px;
  padding:34px 34px 24px;
  backdrop-filter:blur(10px);
}
.legal-richtext h2{
  margin:0 0 14px;
  font-size:clamp(22px, 3vw, 32px);
}
.legal-richtext h2:not(:first-child){
  margin-top:34px;
}
.legal-richtext p,
.legal-richtext li{
  font-size:16px;
  line-height:1.8;
}
.legal-richtext ul{
  margin:14px 0 0;
  padding-left:20px;
}
.legal-richtext a{
  text-decoration:underline;
  text-underline-offset:3px;
}

/* =========================================================
   COOKIE BANNER
   ========================================================= */
.cookie-banner{
  position:fixed;
  left:20px;
  right:20px;
  bottom:20px;
  z-index:1200;
  display:none;
}
.cookie-banner.is-visible{
  display:block;
}
.cookie-banner__inner{
  width:min(100%, 820px);
  margin:0 auto;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(88,58,54,.18);
  box-shadow:0 24px 60px rgba(17,17,17,.14);
  border-radius:24px;
  padding:20px 20px 18px;
  backdrop-filter:blur(12px);
}
.cookie-banner__title{
  margin:0 0 8px;
  font-size:18px;
}
.cookie-banner__text{
  margin:0;
  font-size:14px;
  line-height:1.65;
}
.cookie-banner__actions,
.cookie-banner__panel-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:16px;
}
.cookie-btn{
  appearance:none;
  border:1px solid rgba(88,58,54,.2);
  background:#fff;
  color:#583a36;
  border-radius:999px;
  padding:11px 18px;
  font:600 13px/1 'Inter', sans-serif;
  cursor:pointer;
  transition:transform .2s ease, opacity .2s ease, background .25s ease, color .25s ease;
}
.cookie-btn:hover{ transform:translateY(-1px); }
.cookie-btn--primary{
  background:#583a36;
  color:#fff;
}
.cookie-btn--ghost{
  background:transparent;
}
.cookie-banner__panel{
  display:none;
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid rgba(88,58,54,.12);
}
.cookie-banner__panel.is-open{ display:block; }
.cookie-option{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:12px 0;
}
.cookie-option + .cookie-option{
  border-top:1px solid rgba(88,58,54,.08);
}
.cookie-option__copy strong{ display:block; margin-bottom:4px; }
.cookie-option__copy p{ margin:0; font-size:14px; line-height:1.6; }
.cookie-switch{
  position:relative;
  width:52px;
  height:30px;
  display:inline-block;
  flex:0 0 auto;
}
.cookie-switch input{ position:absolute; opacity:0; inset:0; }
.cookie-switch span{
  position:absolute; inset:0; border-radius:999px; background:#cdbda6; transition:background .2s ease;
}
.cookie-switch span::after{
  content:''; position:absolute; width:22px; height:22px; border-radius:50%; background:#fff; top:4px; left:4px; box-shadow:0 3px 10px rgba(17,17,17,.18); transition:transform .2s ease;
}
.cookie-switch input:checked + span{ background:#583a36; }
.cookie-switch input:checked + span::after{ transform:translateX(22px); }
.cookie-switch input:disabled + span{ opacity:.6; }
.cookie-manage{
  position:fixed;
  left:18px;
  bottom:18px;
  z-index:1150;
  border:none;
  border-radius:999px;
  padding:11px 16px;
  background:#583a36;
  color:#fff;
  font:600 12px/1 'Inter', sans-serif;
  box-shadow:0 14px 28px rgba(17,17,17,.18);
  cursor:pointer;
}
@media (max-width: 768px){
  .legal-main{ padding-top:94px; }
  .legal-shell{ width:min(calc(100% - 28px), 980px); }
  .legal-richtext{ padding:24px 20px 16px; border-radius:22px; }
  .legal-intro{ font-size:16px; }
  .cookie-banner{ left:12px; right:12px; bottom:12px; }
  .cookie-banner__inner{ border-radius:20px; padding:18px 16px 16px; }
  .cookie-manage{ left:12px; bottom:12px; }
}

/* =========================================================
   13. Sistema visual global — fondos, cards y overlays
   ========================================================= */
html,
body,
.page-content,
.projects-main,
.team-main,
.project-detail-main,
.method-main,
.method-page .page-content,
.projects-page,
.team-page,
.site-footer,
.projects-main > :not(.projects-hero):not(.projects-hero-shell),
.team-main > :not(.team-hero):not(.team-hero-shell),
.projects-page .site-footer,
.team-page .site-footer,
.team-grid,
.team-banner,
body.legal-page{
  background:var(--bg) !important;
}

html::before{background:var(--bg) !important;}

.site-header{
  background:var(--bg-glass) !important;
  border-bottom-color:rgba(88,58,54,.10);
}

.site-nav.is-open{background:var(--bg-glass-strong) !important;}

.hero-fixed,
.project-image-wrap,
.team-member-photo,
.project-shot{
  background:var(--bg-soft) !important;
}

.value-card,
.method-pillar,
.legal-richtext,
.cookie-banner__inner{
  background:var(--bg-card) !important;
  border-color:rgba(88,58,54,.13) !important;
}

.value-card--soft,
.principle-card,
.team-value-card,
.method-step-card{
  background:var(--bg-card) !important;
  border-color:rgba(88,58,54,.13) !important;
}

.principle-card:hover,
.method-step-card:hover,
.method-pillar:hover,
.value-card.is-animated-right:not(.value-card--no-hover):hover{
  background:#f0ebe7!important;
  border-color:rgba(88,58,54,.18) !important;
  box-shadow:0 16px 34px rgba(88,58,54,.08);
}

/* Flechas: estilos definidos en Hero y Carrusel para evitar duplicidades visuales. */

.project-image-wrap::after,
.projects-page [data-all-projects-carousel] .project-image-wrap::after{
  background:var(--overlay-brown) !important;
}

.hero-fixed::after,
.projects-hero-slider::after,
.project-detail-hero::after{
  background:linear-gradient(to bottom, rgba(88,58,54,.12), rgba(88,58,54,.08)) !important;
}

.cookie-btn{background:rgba(244,234,220,.95);}
.cookie-btn--primary,
.cookie-manage{
  background:#583a36 !important;
  color:#fff !important;
}
.cookie-btn--ghost{background:transparent;}
.cookie-switch span{background:#cdbda6;}

/* =========================================================
   PROJECT DETAIL LIGHTBOX
   Ampliación de imágenes solo para galerías de proyecto
   ========================================================= */
.project-detail-grid .project-shot{
  cursor:zoom-in;
}
.project-detail-grid .project-shot img{
  transition:transform .45s ease, filter .45s ease;
}
.project-detail-grid .project-shot:hover img{
  transform:scale(1.025);
}
.project-lightbox{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(18px,4vw,48px);
  background:rgba(18,14,12,.86);
  backdrop-filter:blur(16px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .25s ease, visibility .25s ease;
}
.project-lightbox.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.project-lightbox__figure{
  position:relative;
  width:min(100%, 1180px);
  height:min(82vh, 820px);
  margin:0;
  display:flex;
  align-items:center;
  justify-content:center;
}
.project-lightbox__image{
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  display:block;
  object-fit:contain;
  box-shadow:0 24px 70px rgba(0,0,0,.34);
}
.project-lightbox__button{
  position:absolute;
  z-index:2;
  width:44px;
  height:44px;
  border:1px solid rgba(255,255,255,.52);
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:#fff;
  display:grid;
  place-items:center;
  cursor:pointer;
  transition:background .2s ease, transform .2s ease, border-color .2s ease;
}
.project-lightbox__button:hover{
  background:rgba(255,255,255,.18);
  border-color:rgba(255,255,255,.82);
  transform:scale(1.04);
}
.project-lightbox__button::before{
  content:"";
  width:10px;
  height:10px;
  border-top:1.5px solid currentColor;
  border-right:1.5px solid currentColor;
}
.project-lightbox__button--close{
  top:22px;
  right:22px;
}
.project-lightbox__button--close::before,
.project-lightbox__button--close::after{
  content:"";
  position:absolute;
  width:16px;
  height:1.5px;
  background:currentColor;
  border:0;
  transform:rotate(45deg);
}
.project-lightbox__button--close::after{
  transform:rotate(-45deg);
}
.project-lightbox__button--prev{
  left:22px;
  top:50%;
  transform:translateY(-50%);
}
.project-lightbox__button--prev:hover{
  transform:translateY(-50%) scale(1.04);
}
.project-lightbox__button--prev::before{
  transform:rotate(-135deg);
  margin-left:4px;
}
.project-lightbox__button--next{
  right:22px;
  top:50%;
  transform:translateY(-50%);
}
.project-lightbox__button--next:hover{
  transform:translateY(-50%) scale(1.04);
}
.project-lightbox__button--next::before{
  transform:rotate(45deg);
  margin-right:4px;
}
.project-lightbox__counter{
  position:absolute;
  left:50%;
  bottom:22px;
  transform:translateX(-50%);
  color:#fff;
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  opacity:.82;
}
body.is-project-lightbox-open{
  overflow:hidden;
}
@media (max-width: 768px){
  .project-lightbox{
    padding:16px;
  }
  .project-lightbox__figure{
    height:78vh;
  }
  .project-lightbox__button{
    width:40px;
    height:40px;
  }
  .project-lightbox__button--close{
    top:14px;
    right:14px;
  }
  .project-lightbox__button--prev{
    left:12px;
  }
  .project-lightbox__button--next{
    right:12px;
  }
  .project-lightbox__counter{
    bottom:14px;
  }
}

/* =========================================================
   EQUIPO · Propósito + Visión
   ========================================================= */
.team-values--unified{
  margin-top:44px;
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
}

.team-values--unified .team-value-card{
  display:grid;
  grid-template-columns:minmax(160px,.32fr) minmax(0,1fr);
  align-items:center;
  min-height:118px;
  padding:30px 34px;
  background:var(--bg-card) !important;
  border:1px solid rgba(88,58,54,.12) !important;
}

.team-values--unified .team-value-card h2{
  margin:0;
  color:var(--accent);
  font-family:'Bacalisties', serif;
  font-size:34px;
  line-height:1;
  font-weight:400;
  letter-spacing:.01em;
}

.team-values--unified .team-value-card p{
  margin:0;
  max-width:620px;
  color:var(--text-soft);
  font-size:15px;
  line-height:1.8;
}

@media (max-width: 768px){
  .team-values--unified{
    margin-top:34px;
    gap:18px;
  }

  .team-values--unified .team-value-card{
    grid-template-columns:1fr;
    min-height:auto;
    gap:14px;
    padding:26px 24px;
  }

  .team-values--unified .team-value-card h2{
    font-size:30px;
  }
}


@media (max-width: 768px){
  .project-caption{
    opacity:1;
    transform:none;
    grid-template-columns:minmax(0,1fr) auto;
    column-gap:14px;
    row-gap:0;
    min-height:74px;
    align-items:start;
  }
  .project-title,.project-type{font-size:14px}
  .project-title{grid-column:1;min-width:0}
  .project-type{grid-column:2;text-align:right;white-space:nowrap}
  .project-desc{
    grid-column:1 / -1;
    max-width:70%;
    margin-left:auto;
    margin-top:-2px;
    justify-self:end;
    text-align:right;
    font-size:12px;
    line-height:1.35;
    white-space:normal;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
}

/* =========================================================
   FIX: Project caption desktop alignment
   - Desktop/tablet: project-type and project-desc share the same right column.
   - project-desc stays on one line without overflowing to the right.
   - Mobile keeps the existing two-line behaviour defined in max-width:768px.
   ========================================================= */
@media (min-width: 769px){
  .project-caption{
    grid-template-columns:minmax(0, 1fr) minmax(0, 72%);
    column-gap:20px;
    row-gap:0;
  }

  .project-title{
    grid-column:1;
    min-width:0;
  }

  .project-type,
  .project-desc{
    grid-column:2;
    width:100%;
    max-width:100%;
    justify-self:end;
    text-align:right;
    white-space:nowrap;
  }

  .project-desc{
    margin-top:6px;
    overflow:visible;
  }


  @media (max-width: 768px){
    .brand img{
      width: 80px;
    }
  }
}

/* =========================================================
   PROJECTS PAGE UPDATE
   - Carrusel de últimos proyectos finito
   - Swipe en banner de proyectos
   - Responsive del hero para evitar solapes
   ========================================================= */
.projects-hero-slider{
  touch-action:pan-y;
  cursor:default;
}
.projects-hero-slider.is-dragging{
  cursor:default;
}
.projects-hero-title-link{
  color:inherit;
  text-decoration:none;
}
.projects-carousel[data-carousel-mode="finite"] .projects-track{
  align-items:flex-start;
}
.projects-carousel[data-carousel-mode="finite"] .project-card{
  flex:0 0 calc((100% - 18px) / 2.08);
  width:calc((100% - 18px) / 2.08);
}
.projects-arrow:disabled,
.projects-arrow[disabled]{
  opacity:.32;
  pointer-events:none;
  transform:none;
}

@media (max-width: 768px){
  .projects-hero .slider-arrow{
    width:42px;
    height:42px;
  }
  .projects-hero .slider-arrow--left{
    left:14px;
  }
  .projects-hero .slider-arrow--right{
    right:14px;
  }
  .projects-hero .slider-arrow::before{
    width:15px;
  }
  .projects-hero .slider-arrow::after{
    width:5px;
    height:5px;
    right:14px;
  }
  .projects-hero .slider-arrow--left::after{
    left:14px;
    right:auto;
  }
  .projects-hero-title{
    width:calc(100% - 132px);
    max-width:calc(100% - 132px);
    font-size:clamp(22px, 7vw, 30px);
    line-height:1.18;
    white-space:normal;
    letter-spacing:.06em;
  }
  .projects-carousel[data-carousel-mode="finite"] .project-card{
    flex-basis:84vw;
    width:84vw;
  }
}


/* =========================================================
   FIX / Swipe real en banner principal de Proyectos
   - El shell vacío no bloquea el dedo
   - El slider fijo recibe eventos táctiles/puntero
   ========================================================= */
.projects-hero-shell{
  pointer-events:none;
}
.projects-hero,
.projects-hero-slider,
.projects-hero-slides,
.projects-hero-slide{
  pointer-events:auto;
}
.projects-hero-slider{
  touch-action:pan-y;
  -webkit-user-select:none;
  user-select:none;
}

/* =========================================================
   PROJECTS ARCHIVE META
   Categoría y subfrase bajo las fotos de "Todos los proyectos"
   ========================================================= */
.projects-masonry--editorial .masonry-caption--meta{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  column-gap:18px;
  row-gap:6px;
  align-items:start;
}

.projects-masonry--editorial .masonry-title,
.projects-masonry--editorial .masonry-type{
  font-size:15px;
  line-height:1.3;
  color:#5b4c49;
}

.projects-masonry--editorial .masonry-title{
  font-weight:600;
  letter-spacing:.03em;
  text-transform:uppercase;
}

.projects-masonry--editorial .masonry-type{
  font-weight:400;
  text-align:right;
  white-space:nowrap;
}

.projects-masonry--editorial .masonry-desc{
  grid-column:2;
  justify-self:end;
  max-width:390px;
  font-family:'Montserrat', sans-serif;
  font-style:italic;
  font-size:13px;
  line-height:1.35;
  color:#5b4c49;
  opacity:.78;
  text-align:right;
}

@media (max-width: 1100px){
  .projects-masonry--editorial .masonry-caption--meta{
    grid-template-columns:1fr;
    column-gap:0;
    row-gap:5px;
  }

  .projects-masonry--editorial .masonry-type,
  .projects-masonry--editorial .masonry-desc{
    grid-column:1;
    justify-self:start;
    text-align:left;
    white-space:normal;
    max-width:100%;
  }
}

@media (max-width: 768px){
  .projects-masonry--editorial .masonry-title,
  .projects-masonry--editorial .masonry-type{
    font-size:13px;
  }

  .projects-masonry--editorial .masonry-desc{
    font-size:12px;
  }
}

/* =========================================================
   FIX: Todos los proyectos · meta igual que slider
   - La información aparece solo al pasar el ratón / foco.
   - Tipografías, pesos y jerarquía igualadas al slider horizontal.
   ========================================================= */
.projects-masonry--editorial .masonry-caption,
.projects-masonry--editorial .masonry-caption--meta{
  opacity:0 !important;
  transform:translateY(10px) !important;
  transition:opacity .25s ease, transform .25s ease !important;
  pointer-events:none;
}

.projects-masonry--editorial .masonry-card:hover .masonry-caption,
.projects-masonry--editorial .masonry-card:focus-visible .masonry-caption,
.projects-masonry--editorial .masonry-card:active .masonry-caption{
  opacity:1 !important;
  transform:translateY(0) !important;
}

.projects-masonry--editorial .masonry-caption--meta{
  margin-top:14px;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,72%);
  column-gap:20px;
  row-gap:0;
  align-items:start;
}

.projects-masonry--editorial .masonry-title,
.projects-masonry--editorial .masonry-type{
  font-family:'Montserrat', sans-serif;
  font-size:15px;
  line-height:1.35;
  color:#5b4c49;
}

.projects-masonry--editorial .masonry-title{
  grid-column:1;
  min-width:0;
  font-weight:600;
  letter-spacing:.03em;
  text-transform:uppercase;
}

.projects-masonry--editorial .masonry-type{
  grid-column:2;
  width:100%;
  max-width:100%;
  justify-self:end;
  font-weight:400;
  text-align:right;
  white-space:nowrap;
}

.projects-masonry--editorial .masonry-desc{
  grid-column:2;
  width:100%;
  max-width:100%;
  justify-self:end;
  margin-top:6px;
  font-family:'Montserrat', sans-serif;
  font-style:italic;
  font-size:14px;
  line-height:1.35;
  font-weight:400;
  color:#5b4c49;
  opacity:.78;
  text-align:right;
  white-space:normal;
}

@media (max-width:1100px){
  .projects-masonry--editorial .masonry-caption--meta{
    grid-template-columns:1fr;
    column-gap:0;
    row-gap:5px;
  }

  .projects-masonry--editorial .masonry-type,
  .projects-masonry--editorial .masonry-desc{
    grid-column:1;
    justify-self:start;
    text-align:left;
    max-width:100%;
    white-space:normal;
  }

  .projects-masonry--editorial .masonry-desc{
    margin-top:0;
  }
}

@media (max-width:768px){
  .projects-masonry--editorial .masonry-caption,
  .projects-masonry--editorial .masonry-caption--meta{
    opacity:0 !important;
    transform:translateY(8px) !important;
  }

  .projects-masonry--editorial .masonry-card:hover .masonry-caption,
  .projects-masonry--editorial .masonry-card:focus-visible .masonry-caption,
  .projects-masonry--editorial .masonry-card:active .masonry-caption{
    opacity:1 !important;
    transform:translateY(0) !important;
  }

  .projects-masonry--editorial .masonry-title,
  .projects-masonry--editorial .masonry-type{
    font-size:14px;
  }

  .projects-masonry--editorial .masonry-desc{
    font-size:12px;
    line-height:1.35;
  }
}

/* =========================================================
   FIX FINAL / Todos los proyectos · meta igual que slider
   - Solo visible en hover/focus.
   - Nombre en una línea a la izquierda.
   - Categoría y subfrase alineadas a la derecha, sin mayúsculas forzadas.
   ========================================================= */
.projects-masonry--editorial .masonry-caption--meta{
  margin-top:14px !important;
  display:grid !important;
  grid-template-columns:max-content minmax(0, 1fr) !important;
  column-gap:20px !important;
  row-gap:0 !important;
  align-items:start !important;
  opacity:0 !important;
  transform:translateY(10px) !important;
  transition:opacity .25s ease, transform .25s ease !important;
  pointer-events:none !important;
}

.projects-masonry--editorial .masonry-card:hover .masonry-caption--meta,
.projects-masonry--editorial .masonry-card:focus-visible .masonry-caption--meta,
.projects-masonry--editorial .masonry-card:active .masonry-caption--meta{
  opacity:1 !important;
  transform:translateY(0) !important;
}

.projects-masonry--editorial .masonry-title,
.projects-masonry--editorial .masonry-type{
  font-family:'Montserrat', sans-serif !important;
  font-size:15px !important;
  line-height:1.35 !important;
  color:#5b4c49 !important;
}

.projects-masonry--editorial .masonry-title{
  grid-column:1 !important;
  font-weight:600 !important;
  letter-spacing:.03em !important;
  text-transform:uppercase !important;
  white-space:nowrap !important;
}

.projects-masonry--editorial .masonry-type{
  grid-column:2 !important;
  justify-self:end !important;
  width:auto !important;
  max-width:100% !important;
  font-weight:400 !important;
  text-align:right !important;
  text-transform:none !important;
  white-space:nowrap !important;
}

.projects-masonry--editorial .masonry-desc{
  grid-column:2 !important;
  justify-self:end !important;
  width:auto !important;
  max-width:min(100%, 620px) !important;
  margin-top:6px !important;
  font-family:'Montserrat', sans-serif !important;
  font-style:italic !important;
  font-size:14px !important;
  line-height:1.35 !important;
  font-weight:400 !important;
  color:#5b4c49 !important;
  opacity:.78 !important;
  text-align:right !important;
  text-transform:none !important;
  white-space:normal !important;
}

@media (max-width:1100px){
  .projects-masonry--editorial .masonry-caption--meta{
    grid-template-columns:1fr !important;
    row-gap:5px !important;
  }

  .projects-masonry--editorial .masonry-title,
  .projects-masonry--editorial .masonry-type,
  .projects-masonry--editorial .masonry-desc{
    grid-column:1 !important;
    justify-self:start !important;
    text-align:left !important;
    max-width:100% !important;
  }

  .projects-masonry--editorial .masonry-title,
  .projects-masonry--editorial .masonry-type{
    white-space:normal !important;
  }

  .projects-masonry--editorial .masonry-desc{
    margin-top:0 !important;
  }
}

@media (max-width:768px){
  .projects-masonry--editorial .masonry-title,
  .projects-masonry--editorial .masonry-type{
    font-size:14px !important;
  }

  .projects-masonry--editorial .masonry-desc{
    font-size:12px !important;
  }
}

/* =========================================================
   CONTACT PAGE / Página de contacto editorial
   ========================================================= */
.contact-page{
  background:#fff;
  color:#5b4c49;
}

.contact-page .site-header{
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  border-bottom:0;
}

.contact-main{
  min-height:100vh;
  padding:clamp(132px, 16vh, 178px) 0 clamp(70px, 10vh, 112px);
}

.contact-panel{
  width:min(calc(100% - 64px), 1320px);
  margin:0 auto;
}

.contact-line{
  display:grid;
  grid-template-columns:minmax(220px, .34fr) minmax(0, 1fr);
  column-gap:clamp(56px, 9vw, 178px);
  align-items:start;
  padding:clamp(44px, 6.2vh, 68px) 0;
  border-top:1px solid rgba(91,76,73,.58);
}

.contact-line:last-child{
  border-bottom:1px solid rgba(91,76,73,.58);
}

.contact-page .scroll-rise-up{
  transform:translateY(46px);
  transition:opacity 1.65s ease var(--scroll-rise-delay,0ms), transform 1.65s cubic-bezier(.22,.61,.36,1) var(--scroll-rise-delay,0ms);
}

.contact-label{
  font-family:'Montserrat', sans-serif;
  font-size:18px;
  line-height:1.18;
  letter-spacing:.065em;
  text-transform:uppercase;
  font-weight:400;
  color:rgba(91,76,73,.68);
}

.contact-content{
  justify-self:start;
  font-size:16px;
  line-height:1.50;
  letter-spacing:.025em;
  color:#5b4c49;
}

.contact-content--strong{
  text-transform:uppercase;
  font-weight:500;
}

.contact-content p{
  margin:0;
}

.contact-content a,
.contact-social-links a{
  color:inherit;
  text-decoration:none;
  transition:opacity .25s ease;
}

.contact-content a:hover,
.contact-social-links a:hover{
  opacity:.55;
}

.contact-form{
  width:100%;
  max-width:640px;
}

.contact-form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px 34px;
}

.contact-form label{
  display:block;
}

.contact-form span{
  display:block;
  margin-bottom:6px;
  font-size:12px;
  line-height:1.2;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(91,76,73,.68);
}

.contact-form input,
.contact-form textarea{
  width:100%;
  border:0;
  border-bottom:1px solid rgba(91,76,73,.22);
  background:transparent;
  padding:4px 0 8px;
  font-family:inherit;
  font-size:14px;
  color:#5b4c49;
  outline:none;
  border-radius:0;
  resize:vertical;
}

.contact-form input:focus,
.contact-form textarea:focus{
  border-bottom-color:rgba(91,76,73,.7);
}

.contact-form-message{
  grid-column:1 / -1;
}

.contact-submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:22px;
  min-width:82px;
  height:30px;
  border:0;
  border-radius:999px;
  background:#8c8580;
  color:#fff;
  font-family:inherit;
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
  transition:opacity .25s ease, transform .25s ease;
}

.contact-submit:hover{
  opacity:.78;
  transform:translateY(-1px);
}

.contact-form-status{
  min-height:18px;
  margin:14px 0 0;
  font-size:11px;
  line-height:1.4;
  letter-spacing:.055em;
  text-transform:uppercase;
  color:rgba(91,76,73,.72);
}

.contact-form-status.is-success{
  color:#5b4c49;
}

.contact-form-status.is-error{
  color:#8a4b43;
}

.contact-submit:disabled{
  opacity:.55;
  cursor:default;
  transform:none;
}

.contact-social-links{
  display:flex;
  flex-direction:column;
  gap:4px;
  text-transform:uppercase;
  font-weight:500;
}

.contact-footer{
  margin-top:0;
}

@media (max-width: 768px){
  .contact-main{
    padding:112px 0 56px;
  }

  .contact-panel{
    width:min(calc(100% - 32px), 1320px);
  }

  .contact-line{
    grid-template-columns:1fr;
    gap:18px;
    padding:28px 0;
  }

  .contact-label{
    font-size:16px;
  }

  .contact-content{
    font-size:14px;
  }

  .contact-form-grid{
    grid-template-columns:1fr;
    gap:18px;
  }

  .contact-social-links{
    flex-direction:column;
    gap:10px;
  }
}

/* Ajuste responsive logo/header: logo más pequeño y alineado a la izquierda para compensar con el botón burger */
@media (max-width: 768px){
  .site-header .header-inner{
    grid-template-columns:auto 1fr auto;
    min-height:96px;
  }
  .site-header .brand{
    grid-column:1;
    justify-self:start;
    align-self:center;
  }
  .site-header .brand img{
    width:112px;
    max-width:112px;
    height:auto;
  }
  .site-header .nav-toggle{
    grid-column:3;
    justify-self:end;
    align-self:center;
  }
}

/* =========================================================
   AJUSTE FINAL · Header móvil centrado + Propósito/Visión
   ========================================================= */
@media (max-width: 768px){
  .site-header .header-inner,
  .header-inner{
    grid-template-columns:1fr auto 1fr !important;
    min-height:96px !important;
  }

  .site-header .brand,
  .brand{
    grid-column:2 !important;
    justify-self:center !important;
    align-self:center !important;
  }

  .site-header .brand img,
  .brand img{
    width:132px !important;
    max-width:132px !important;
    height:auto !important;
  }

  .site-header .nav-toggle,
  .nav-toggle{
    grid-column:3 !important;
    justify-self:end !important;
    align-self:center !important;
  }
}

.team-values--unified .team-value-card{
  grid-template-columns:320px minmax(0,1fr) !important;
  column-gap:54px !important;
}

.team-values--unified .team-value-card h2{
  position:relative;
  min-height:58px;
  display:flex;
  align-items:center;
  padding-right:46px;
  padding-left: 55px;
}

.team-values--unified .team-value-card h2::after{
  content:"";
  position:absolute;
  top:50%;
  right:0;
  width:2px;
  height:64px;
  transform:translateY(-50%);
  background:rgba(88,58,54,.16);
}

.team-values--unified .team-value-card p{
  max-width:720px !important;
}

@media (max-width: 900px){
  .team-values--unified .team-value-card{
    grid-template-columns:1fr !important;
    row-gap:16px !important;
  }

  .team-values--unified .team-value-card h2{
    padding-right:0;
    padding-bottom:14px;
    min-height:auto;
  }

  .team-values--unified .team-value-card h2::after{
   top: 56px;
   right: auto;
   bottom: 0;
   left: 0;
   width: 205px;
   height: 2px;
   transform: none;
  }
}

/* =========================================================
   AJUSTE REAL · Equipo / Propósito y Visión como referencia OK
   ========================================================= */
.team-values--unified .team-value-card h2{
  font-size:40px !important;
  line-height:.95 !important;
  letter-spacing:.005em !important;
}

@media (max-width: 1200px){
  .team-values--unified .team-value-card h2{
    font-size:50px !important;
  }
}

@media (max-width: 768px){
  .team-values--unified .team-value-card h2{
    font-size:42px !important;
  }
}

/* =========================================================
   FIX / Projects - Últimos proyectos igual que Home, sin loop
   - 3 proyectos visibles en escritorio
   - Orden HTML: O'Donnell / Av de los Andes / Felipe Campos
   - Clases aisladas para no pisar el carrusel de Home
   ========================================================= */
.projects-page .projects-latest-section .projects-latest-nav{
  display:none;
}
.projects-page .projects-latest-carousel{
  overflow:hidden;
  cursor:default;
  user-select:none;
  touch-action:pan-y;
}
.projects-page .projects-latest-track{
  display:flex;
  gap:18px;
  will-change:transform;
  transition:transform .65s cubic-bezier(.22,.61,.36,1);
}
.projects-page .projects-latest-card{
  flex:0 0 calc((100% - 36px) / 3);
  width:calc((100% - 36px) / 3);
  display:flex;
  flex-direction:column;
  gap:12px;
  cursor:pointer;
  -webkit-user-drag:none;
}
.projects-page .projects-latest-image-wrap{
  position:relative;
  aspect-ratio:1.8 / 1;
  overflow:hidden;
  background:var(--bg-soft);
}
.projects-page .projects-latest-image-wrap::after{
  content:"";
  position:absolute;
  inset:0;
  background:var(--overlay-brown);
  pointer-events:none;
  transition:opacity .35s ease;
  z-index:1;
}
.projects-page .projects-latest-image-title{
  position:absolute;
  inset:0;
  z-index:2;
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  padding:24px;
  margin:0;
  text-align:center;
  pointer-events:none;
  overflow:hidden;
  font-family:'Bacalisties', cursive;
  font-size:clamp(34px, 3.4vw, 64px);
  line-height:.92;
  letter-spacing:.01em;
  color:#fff;
  font-weight:400;
  text-transform:none;
  white-space:normal;
  text-wrap:balance;
  opacity:1;
  transform:none;
  transition:opacity .25s ease;
}
.projects-page .projects-latest-image-wrap img{
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1);
  transform-origin:center center;
  transition:transform .65s ease;
  pointer-events:none;
}
.projects-page .projects-latest-card:hover .projects-latest-image-wrap::after,
.projects-page .projects-latest-card:focus-visible .projects-latest-image-wrap::after{
  opacity:0;
}
.projects-page .projects-latest-card:hover .projects-latest-image-title,
.projects-page .projects-latest-card:focus-visible .projects-latest-image-title{
  opacity:0;
  transform:none;
}
.projects-page .projects-latest-card:hover .projects-latest-image-wrap img,
.projects-page .projects-latest-card:focus-visible .projects-latest-image-wrap img{
  transform:scale(1.06);
}
.projects-page .projects-latest-caption{
  min-height:34px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:20px;
  align-items:start;
  opacity:0;
  transform:translateY(10px);
  transition:opacity .25s ease, transform .25s ease;
  pointer-events:none;
}
.projects-page .projects-latest-card:hover .projects-latest-caption,
.projects-page .projects-latest-card:focus-visible .projects-latest-caption{
  opacity:1;
  transform:translateY(0);
}
.projects-page .projects-latest-title,
.projects-page .projects-latest-type{
  font-size:15px;
  line-height:1.35;
  color:#5b4c49;
}
.projects-page .projects-latest-title{
  font-weight:600;
  letter-spacing:.03em;
  text-transform:uppercase;
}
.projects-page .projects-latest-type{
  font-weight:400;
  white-space:nowrap;
  text-align:right;
}
.projects-page .projects-latest-desc{
  grid-column:2;
  font-family:'Montserrat', sans-serif;
  font-style:italic;
  font-size:14px;
  line-height:1.35;
  color:#5b4c49;
  opacity:.78;
  text-align:right;
  max-width:420px;
  justify-self:end;
  margin-top:6px;
  white-space:normal;
}
@media (max-width: 1100px){
  .projects-page .projects-latest-card{
    flex-basis:calc((100% - 18px) / 2);
    width:calc((100% - 18px) / 2);
  }
}
@media (max-width: 768px){
  .projects-page .projects-latest-card{
    flex-basis:84vw;
    width:84vw;
  }
  .projects-page .projects-latest-caption{
    opacity:1;
    transform:none;
    grid-template-columns:1fr;
    gap:6px;
    min-height:68px;
  }
  .projects-page .projects-latest-title,
  .projects-page .projects-latest-type{
    font-size:14px;
  }
  .projects-page .projects-latest-type{
    text-align:left;
  }
  .projects-page .projects-latest-desc{
    grid-column:1;
    text-align:left;
    justify-self:start;
    max-width:100%;
    margin-top:0;
    white-space:nowrap;
  }
}

/* =========================================================
   FIX REAL / Projects - Últimos proyectos igual que Home
   - Misma estructura visual del carrusel de Home
   - Solo 3 proyectos reales: O'Donnell / Av de los Andes / Felipe Campos
   - Sin loop infinito: modo finite, sin clones
   ========================================================= */
.projects-page .projects-latest-section{
  padding:58px 0 88px;
  overflow:hidden;
}
.projects-page .projects-latest-section .projects-nav{
  display:flex;
}
.projects-page .projects-latest-section .projects-carousel{
  width:min(calc(100% - 96px), 1600px);
  margin-left:auto;
  margin-right:auto;
}
.projects-page .projects-latest-section .projects-track{
  display:flex;
  gap:18px;
  align-items:flex-start;
  will-change:transform;
  transition:transform .65s cubic-bezier(.22,.61,.36,1);
}
.projects-page .projects-latest-section .project-card,
.projects-page .projects-latest-section .projects-carousel[data-carousel-mode="finite"] .project-card{
  flex:0 0 calc((100% - 36px) / 2.18);
  width:calc((100% - 36px) / 2.18);
}
.projects-page .projects-latest-section .project-title,
.projects-page .projects-latest-section .project-type{
  font-size:15px;
  line-height:1.35;
}
.projects-page .projects-latest-section .project-title{
  white-space:nowrap;
}
.projects-page .projects-latest-section .project-desc{
  white-space:nowrap;
}
@media (max-width: 1100px){
  .projects-page .projects-latest-section .project-card,
  .projects-page .projects-latest-section .projects-carousel[data-carousel-mode="finite"] .project-card{
    flex-basis:calc((100% - 18px) / 1.9);
    width:calc((100% - 18px) / 1.9);
  }
}
@media (max-width: 768px){
  .projects-page .projects-latest-section .project-card,
  .projects-page .projects-latest-section .projects-carousel[data-carousel-mode="finite"] .project-card{
    flex-basis:84vw;
    width:84vw;
  }
  .projects-page .projects-latest-section .project-caption{
    opacity:1;
    transform:none;
    grid-template-columns:1fr;
    gap:6px;
    min-height:68px;
  }
  .projects-page .projects-latest-section .project-title,
  .projects-page .projects-latest-section .project-type{
    font-size:14px;
  }
  .projects-page .projects-latest-section .project-type{
    text-align:left;
  }
  .projects-page .projects-latest-section .project-desc{
    grid-column:1;
    text-align:left;
    justify-self:start;
    max-width:100%;
    margin-top:0;
    white-space:nowrap;
  }
}

/* =========================================================
   FIX / Projects - Últimos proyectos responsive igual que Home
   Esta sección usa la misma base .projects-carousel/.project-card del Home.
   Aquí solo se corrige el responsive que estaba siendo pisado por el scope de Projects.
   ========================================================= */
@media (max-width: 1100px){
  .projects-page .projects-latest-section .projects-carousel{
    width:min(calc(100% - 64px), 1600px);
    margin-left:auto;
    margin-right:auto;
  }
  .projects-page .projects-latest-section .project-card,
  .projects-page .projects-latest-section .projects-carousel[data-carousel-mode="finite"] .project-card{
    flex-basis:calc((100% - 18px) / 1.9);
    width:calc((100% - 18px) / 1.9);
  }
  .projects-page .projects-latest-section .project-caption{
    grid-template-columns:1fr;
    gap:6px;
    min-height:70px;
  }
  .projects-page .projects-latest-section .project-type{
    text-align:left;
  }
  .projects-page .projects-latest-section .project-desc{
    grid-column:1;
    text-align:left;
    justify-self:start;
    max-width:100%;
    margin-top:0;
  }
}

@media (max-width: 768px){
  .projects-page .projects-latest-section .projects-carousel{
    width:min(calc(100% - 32px), 1600px);
    margin-left:auto;
    margin-right:auto;
  }
  .projects-page .projects-latest-section .project-card,
  .projects-page .projects-latest-section .projects-carousel[data-carousel-mode="finite"] .project-card{
    flex-basis:84vw;
    width:84vw;
  }
  .projects-page .projects-latest-section .project-caption{
    opacity:1;
    transform:none;
    grid-template-columns:1fr;
    gap:6px;
    min-height:68px;
  }
  .projects-page .projects-latest-section .project-title,
  .projects-page .projects-latest-section .project-type{
    font-size:14px;
  }
  .projects-page .projects-latest-section .project-type{
    text-align:left;
  }
  .projects-page .projects-latest-section .project-desc{
    grid-column:1;
    text-align:left;
    justify-self:start;
    max-width:100%;
    margin-top:0;
    white-space:normal;
  }
}

/* =========================================================
   FIX FINAL / Projects - captions exactamente como Home
   Mantiene la maquetación responsive del slider de Home:
   - Tablet/desktop: título izquierda, tipo + descripción derecha.
   - Móvil: título izquierda, tipo derecha, descripción debajo alineada a la derecha.
   ========================================================= */
@media (min-width: 769px){
  .projects-page .projects-latest-section .project-caption{
    grid-template-columns:minmax(0, 1fr) minmax(0, 72%);
    column-gap:20px;
    row-gap:0;
    min-height:34px;
    align-items:start;
  }
  .projects-page .projects-latest-section .project-title{
    grid-column:1;
    min-width:0;
    white-space:nowrap;
  }
  .projects-page .projects-latest-section .project-type,
  .projects-page .projects-latest-section .project-desc{
    grid-column:2;
    width:100%;
    max-width:100%;
    justify-self:end;
    text-align:right;
    white-space:nowrap;
  }
  .projects-page .projects-latest-section .project-desc{
    margin-top:6px;
    overflow:visible;
  }
}

@media (max-width: 768px){
  .projects-page .projects-latest-section .project-caption{
    opacity:1;
    transform:none;
    grid-template-columns:minmax(0,1fr) auto;
    column-gap:14px;
    row-gap:0;
    min-height:74px;
    align-items:start;
  }
  .projects-page .projects-latest-section .project-title,
  .projects-page .projects-latest-section .project-type{
    font-size:14px;
  }
  .projects-page .projects-latest-section .project-title{
    grid-column:1;
    min-width:0;
    white-space:nowrap;
  }
  .projects-page .projects-latest-section .project-type{
    grid-column:2;
    text-align:right;
    white-space:nowrap;
  }
  .projects-page .projects-latest-section .project-desc{
    grid-column:1 / -1;
    max-width:70%;
    margin-left:auto;
    margin-top:-2px;
    justify-self:end;
    text-align:right;
    font-size:12px;
    line-height:1.35;
    white-space:normal;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
}

/* =========================================================
   FIX FINAL / Projects · Todos los proyectos responsive
   En móvil los proyectos pasan a una sola columna para que
   cada imagen tenga más presencia y no quede pequeña.
   ========================================================= */
@media (max-width: 768px){
  .projects-page .projects-gallery .projects-masonry--editorial{
    grid-template-columns:1fr !important;
    column-gap:0 !important;
    row-gap:48px !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--a,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--b,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--c,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--d,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--e,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--f,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--g,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--h,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--i{
    grid-column:1 / -1 !important;
    width:100% !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-media{
    width:100% !important;
  }
}

/* =========================================================
   FIX FINAL / Projects · Todos los proyectos descripciones desktop
   Felipe Campos y Av de los Andes en dos líneas controladas,
   alineadas a la derecha como en la referencia.
   ========================================================= */
@media (min-width: 1101px){
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-desc{
    text-align:right !important;
    justify-self:end !important;
    line-height:1.35 !important;
  }
}

/* =========================================================
   FIX DEFINITIVO / Projects · Todos los proyectos captions
   - Desktop: mantiene el texto dentro de cada card y fuerza las
     descripciones de Felipe Campos / Av de los Andes a 2 líneas reales.
   - Móvil: elimina los saltos <br> y deja las descripciones en 1 línea.
   ========================================================= */
@media (min-width: 769px){
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-caption--meta{
    display:grid !important;
    grid-template-columns:minmax(0, 34%) minmax(0, 66%) !important;
    column-gap:20px !important;
    row-gap:0 !important;
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
    overflow:visible !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-title{
    grid-column:1 !important;
    min-width:0 !important;
    max-width:100% !important;
    justify-self:start !important;
    text-align:left !important;
    white-space:nowrap !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-type,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-desc{
    grid-column:2 !important;
    min-width:0 !important;
    width:100% !important;
    max-width:100% !important;
    justify-self:end !important;
    text-align:right !important;
    box-sizing:border-box !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-type{
    white-space:nowrap !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-desc{
    display:block !important;
    margin-top:6px !important;
    white-space:normal !important;
    overflow:visible !important;
    text-wrap:balance;
  }
}

@media (max-width: 768px){
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-caption--meta{
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) auto !important;
    column-gap:14px !important;
    row-gap:6px !important;
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-title{
    grid-column:1 !important;
    justify-self:start !important;
    text-align:left !important;
    white-space:nowrap !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-type{
    grid-column:2 !important;
    justify-self:end !important;
    text-align:right !important;
    white-space:nowrap !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-desc{
    grid-column:1 / -1 !important;
    justify-self:end !important;
    width:auto !important;
    max-width:100% !important;
    margin-top:0 !important;
    text-align:right !important;
    white-space:nowrap !important;
    overflow:visible !important;
    display:block !important;
    font-size:clamp(10px, 2.55vw, 12px) !important;
    line-height:1.35 !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-desc br{
    display:none !important;
  }
}

/* =========================================================
   FIX REAL / Projects · Todos los proyectos texto desktop/mobile
   Desktop: la descripción ocupa todo el ancho de la card, alineada a la derecha,
   para respetar los <br> manuales sin partir AV de los Andes en 3 líneas.
   Mobile: los <br> se ocultan y la descripción queda en una sola línea.
   ========================================================= */
@media (min-width: 769px){
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-caption--meta{
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) auto !important;
    column-gap:20px !important;
    row-gap:0 !important;
    align-items:start !important;
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
    overflow:visible !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-title{
    grid-column:1 !important;
    min-width:0 !important;
    justify-self:start !important;
    text-align:left !important;
    white-space:nowrap !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-type{
    grid-column:2 !important;
    min-width:max-content !important;
    width:auto !important;
    max-width:none !important;
    justify-self:end !important;
    text-align:right !important;
    white-space:nowrap !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-desc{
    grid-column:1 / -1 !important;
    width:100% !important;
    max-width:100% !important;
    justify-self:stretch !important;
    margin-top:6px !important;
    text-align:right !important;
    white-space:normal !important;
    overflow:visible !important;
    display:block !important;
    text-wrap:normal !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-desc br{
    display:block !important;
  }
}

@media (max-width: 768px){
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-caption--meta{
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) auto !important;
    column-gap:14px !important;
    row-gap:6px !important;
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
    overflow:visible !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-title{
    grid-column:1 !important;
    justify-self:start !important;
    text-align:left !important;
    white-space:nowrap !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-type{
    grid-column:2 !important;
    justify-self:end !important;
    text-align:right !important;
    white-space:nowrap !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-desc{
    grid-column:1 / -1 !important;
    width:100% !important;
    max-width:100% !important;
    justify-self:stretch !important;
    margin-top:0 !important;
    text-align:right !important;
    white-space:nowrap !important;
    overflow:visible !important;
    display:block !important;
    font-size:clamp(10px, 2.55vw, 12px) !important;
    line-height:1.35 !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-desc br{
    display:none !important;
  }
}

/* =========================================================
   FIX RESPONSIVE / sliders Home + Projects
   Mantiene las captions limpias al reducir pantalla:
   - título izquierda + categoría derecha
   - descripción debajo alineada a la derecha
   - descripción siempre en una línea, sin partirse raro
   ========================================================= */
@media (min-width: 769px) and (max-width: 1200px){
  .projects-section .project-caption,
  .projects-page .projects-latest-section .project-caption{
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) minmax(0, 72%) !important;
    column-gap:20px !important;
    row-gap:0 !important;
    align-items:start !important;
    min-height:42px !important;
  }

  .projects-section .project-title,
  .projects-page .projects-latest-section .project-title{
    grid-column:1 !important;
    min-width:0 !important;
    justify-self:start !important;
    text-align:left !important;
    white-space:nowrap !important;
  }

  .projects-section .project-type,
  .projects-page .projects-latest-section .project-type{
    grid-column:2 !important;
    min-width:0 !important;
    width:100% !important;
    justify-self:end !important;
    text-align:right !important;
    white-space:nowrap !important;
  }

  .projects-section .project-desc,
  .projects-page .projects-latest-section .project-desc{
    grid-column:2 !important;
    width:100% !important;
    max-width:100% !important;
    justify-self:end !important;
    margin-top:6px !important;
    text-align:right !important;
    white-space:nowrap !important;
    overflow:visible !important;
    display:block !important;
    font-size:clamp(11px, 1.25vw, 14px) !important;
    line-height:1.35 !important;
  }
}

@media (max-width: 768px){
  .projects-section .project-caption,
  .projects-page .projects-latest-section .project-caption{
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) auto !important;
    column-gap:14px !important;
    row-gap:0 !important;
    align-items:start !important;
    min-height:58px !important;
    opacity:1 !important;
    transform:none !important;
  }

  .projects-section .project-title,
  .projects-page .projects-latest-section .project-title{
    grid-column:1 !important;
    min-width:0 !important;
    justify-self:start !important;
    text-align:left !important;
    white-space:nowrap !important;
  }

  .projects-section .project-type,
  .projects-page .projects-latest-section .project-type{
    grid-column:2 !important;
    justify-self:end !important;
    text-align:right !important;
    white-space:nowrap !important;
  }

  .projects-section .project-desc,
  .projects-page .projects-latest-section .project-desc{
    grid-column:1 / -1 !important;
    width:100% !important;
    max-width:100% !important;
    justify-self:stretch !important;
    margin-top:2px !important;
    text-align:right !important;
    white-space:nowrap !important;
    overflow:visible !important;
    display:block !important;
    font-size:clamp(10px, 2.4vw, 12px) !important;
    line-height:1.35 !important;
    -webkit-line-clamp:unset !important;
    -webkit-box-orient:unset !important;
  }
}

/* =========================================================
   FIX DEFINITIVO / Sliders Home + Projects responsive
   Evita que categoría/descripción se corten al reducir pantalla.
   Mantiene desktop grande intacto y en tablet/intermedio fuerza
   una composición estable: título izquierda, tipo derecha y
   descripción en una sola línea ocupando todo el ancho de la card.
   ========================================================= */
@media (min-width: 769px) and (max-width: 1180px){
  .projects-section .projects-carousel{
    width:min(calc(100% - 48px), 1600px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    overflow:hidden !important;
  }

  .projects-section .project-card,
  .projects-section .projects-carousel[data-carousel-mode="finite"] .project-card{
    flex:0 0 calc(100% - 112px) !important;
    width:calc(100% - 112px) !important;
    min-width:0 !important;
  }

  .projects-section .project-caption{
    grid-template-columns:minmax(0, 1fr) auto !important;
    column-gap:18px !important;
    row-gap:4px !important;
    min-height:58px !important;
    width:100% !important;
    max-width:100% !important;
    overflow:visible !important;
  }

  .projects-section .project-title{
    grid-column:1 !important;
    min-width:0 !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  .projects-section .project-type{
    grid-column:2 !important;
    justify-self:end !important;
    text-align:right !important;
    white-space:nowrap !important;
    min-width:max-content !important;
    overflow:visible !important;
  }

  .projects-section .project-desc{
    grid-column:1 / -1 !important;
    justify-self:end !important;
    width:100% !important;
    max-width:100% !important;
    margin-top:0 !important;
    text-align:right !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
    font-size:clamp(12px, 1.35vw, 14px) !important;
    line-height:1.35 !important;
    display:block !important;
  }
}

@media (min-width: 769px) and (max-width: 920px){
  .projects-section .project-card,
  .projects-section .projects-carousel[data-carousel-mode="finite"] .project-card{
    flex-basis:calc(100% - 72px) !important;
    width:calc(100% - 72px) !important;
  }

  .projects-section .project-caption{
    column-gap:14px !important;
  }

  .projects-section .project-title,
  .projects-section .project-type{
    font-size:14px !important;
  }

  .projects-section .project-desc{
    font-size:12px !important;
  }
}

@media (max-width: 768px){
  .projects-section .project-desc{
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
    display:block !important;
    -webkit-line-clamp:unset !important;
  }
}

/* =========================================================
   FIX EXTRA / Responsive intermedio sliders Home + Projects
   En pantallas tipo portátil/ventana reducida evita que el slider
   intente mostrar dos cards y que la descripción quede comprimida.
   Se aplica solo a carruseles, no al grid de Todos los proyectos.
   ========================================================= */
@media (min-width: 769px) and (max-width: 1280px){
  .projects-section .projects-carousel,
  .projects-page .projects-latest-section .projects-carousel{
    width:min(calc(100% - 48px), 1600px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    overflow:hidden !important;
  }

  .projects-section .projects-track,
  .projects-page .projects-latest-section .projects-track{
    gap:18px !important;
    align-items:flex-start !important;
  }

  .projects-section .project-card,
  .projects-section .projects-carousel[data-carousel-mode="finite"] .project-card,
  .projects-page .projects-latest-section .project-card,
  .projects-page .projects-latest-section .projects-carousel[data-carousel-mode="finite"] .project-card{
    flex:0 0 calc(100% - 112px) !important;
    width:calc(100% - 112px) !important;
    min-width:0 !important;
  }

  .projects-section .project-caption,
  .projects-page .projects-latest-section .project-caption{
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) auto !important;
    column-gap:18px !important;
    row-gap:4px !important;
    width:100% !important;
    max-width:100% !important;
    min-height:58px !important;
    align-items:start !important;
    overflow:visible !important;
    opacity:1 !important;
    transform:none !important;
  }

  .projects-section .project-title,
  .projects-page .projects-latest-section .project-title{
    grid-column:1 !important;
    min-width:0 !important;
    justify-self:start !important;
    text-align:left !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  .projects-section .project-type,
  .projects-page .projects-latest-section .project-type{
    grid-column:2 !important;
    min-width:max-content !important;
    width:auto !important;
    justify-self:end !important;
    text-align:right !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
  }

  .projects-section .project-desc,
  .projects-page .projects-latest-section .project-desc{
    grid-column:1 / -1 !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    justify-self:stretch !important;
    margin-top:0 !important;
    text-align:right !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
    display:block !important;
    font-size:clamp(11px, 1.22vw, 14px) !important;
    line-height:1.35 !important;
    -webkit-line-clamp:unset !important;
    -webkit-box-orient:unset !important;
  }
}

@media (min-width: 769px) and (max-width: 980px){
  .projects-section .project-card,
  .projects-section .projects-carousel[data-carousel-mode="finite"] .project-card,
  .projects-page .projects-latest-section .project-card,
  .projects-page .projects-latest-section .projects-carousel[data-carousel-mode="finite"] .project-card{
    flex-basis:calc(100% - 72px) !important;
    width:calc(100% - 72px) !important;
  }

  .projects-section .project-caption,
  .projects-page .projects-latest-section .project-caption{
    column-gap:14px !important;
  }

  .projects-section .project-title,
  .projects-section .project-type,
  .projects-page .projects-latest-section .project-title,
  .projects-page .projects-latest-section .project-type{
    font-size:14px !important;
  }

  .projects-section .project-desc,
  .projects-page .projects-latest-section .project-desc{
    font-size:12px !important;
  }
}

/* =========================================================
   FIX AUDITADO FINAL / Sliders Home + Projects responsive
   Objetivo: no romper en ventanas intermedias (portátil 16" / navegador reducido).
   - Desktop grande (>1280px): se mantiene la composición editorial existente.
   - Intermedio/tablet horizontal (769px-1280px): una card limpia por vista,
     título izquierda, categoría derecha y descripción debajo ocupando toda la card.
   - Móvil (<=768px): misma jerarquía, textos en una línea sin cortes raros.
   ========================================================= */
@media (min-width: 769px) and (max-width: 1280px){
  .projects-section .projects-carousel,
  .projects-page .projects-latest-section .projects-carousel{
    width:min(calc(100% - 48px), 1600px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    overflow:hidden !important;
  }

  .projects-section .projects-track,
  .projects-page .projects-latest-section .projects-track{
    gap:18px !important;
    align-items:flex-start !important;
  }

  .projects-section .project-card,
  .projects-section .projects-carousel[data-carousel-mode="finite"] .project-card,
  .projects-page .projects-latest-section .project-card,
  .projects-page .projects-latest-section .projects-carousel[data-carousel-mode="finite"] .project-card{
    flex:0 0 100% !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
  }

  .projects-section .project-caption,
  .projects-page .projects-latest-section .project-caption{
    display:grid !important;
    grid-template-columns:minmax(220px, 1fr) max-content !important;
    column-gap:24px !important;
    row-gap:6px !important;
    width:100% !important;
    max-width:100% !important;
    min-height:64px !important;
    align-items:start !important;
    overflow:visible !important;
    opacity:1 !important;
    transform:none !important;
    pointer-events:auto !important;
  }

  .projects-section .project-title,
  .projects-page .projects-latest-section .project-title{
    grid-column:1 !important;
    grid-row:1 !important;
    min-width:0 !important;
    justify-self:start !important;
    align-self:start !important;
    text-align:left !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
    font-size:clamp(15px, 1.7vw, 20px) !important;
    line-height:1.25 !important;
  }

  .projects-section .project-type,
  .projects-page .projects-latest-section .project-type{
    grid-column:2 !important;
    grid-row:1 !important;
    min-width:max-content !important;
    width:auto !important;
    justify-self:end !important;
    align-self:start !important;
    text-align:right !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
    font-size:clamp(15px, 1.7vw, 20px) !important;
    line-height:1.25 !important;
  }

  .projects-section .project-desc,
  .projects-page .projects-latest-section .project-desc{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    justify-self:stretch !important;
    margin:0 !important;
    padding:0 !important;
    text-align:right !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
    display:block !important;
    font-size:clamp(12px, 1.25vw, 15px) !important;
    line-height:1.35 !important;
    -webkit-line-clamp:unset !important;
    -webkit-box-orient:unset !important;
  }
}

@media (min-width: 769px) and (max-width: 980px){
  .projects-section .projects-carousel,
  .projects-page .projects-latest-section .projects-carousel{
    width:min(calc(100% - 36px), 1600px) !important;
  }

  .projects-section .project-caption,
  .projects-page .projects-latest-section .project-caption{
    grid-template-columns:minmax(190px, 1fr) max-content !important;
    column-gap:18px !important;
  }

  .projects-section .project-title,
  .projects-section .project-type,
  .projects-page .projects-latest-section .project-title,
  .projects-page .projects-latest-section .project-type{
    font-size:clamp(14px, 1.8vw, 18px) !important;
  }

  .projects-section .project-desc,
  .projects-page .projects-latest-section .project-desc{
    font-size:clamp(11px, 1.45vw, 13px) !important;
  }
}

@media (max-width: 768px){
  .projects-section .projects-carousel,
  .projects-page .projects-latest-section .projects-carousel{
    width:min(calc(100% - 32px), 1600px) !important;
    overflow:hidden !important;
  }

  .projects-section .project-card,
  .projects-section .projects-carousel[data-carousel-mode="finite"] .project-card,
  .projects-page .projects-latest-section .project-card,
  .projects-page .projects-latest-section .projects-carousel[data-carousel-mode="finite"] .project-card{
    flex:0 0 84vw !important;
    width:84vw !important;
    min-width:0 !important;
  }

  .projects-section .project-caption,
  .projects-page .projects-latest-section .project-caption{
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) max-content !important;
    column-gap:12px !important;
    row-gap:4px !important;
    min-height:58px !important;
    width:100% !important;
    max-width:100% !important;
    opacity:1 !important;
    transform:none !important;
    overflow:visible !important;
  }

  .projects-section .project-title,
  .projects-page .projects-latest-section .project-title{
    grid-column:1 !important;
    grid-row:1 !important;
    min-width:0 !important;
    justify-self:start !important;
    text-align:left !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    font-size:14px !important;
    line-height:1.25 !important;
  }

  .projects-section .project-type,
  .projects-page .projects-latest-section .project-type{
    grid-column:2 !important;
    grid-row:1 !important;
    min-width:max-content !important;
    justify-self:end !important;
    text-align:right !important;
    white-space:nowrap !important;
    overflow:visible !important;
    font-size:14px !important;
    line-height:1.25 !important;
  }

  .projects-section .project-desc,
  .projects-page .projects-latest-section .project-desc{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
    width:100% !important;
    max-width:100% !important;
    justify-self:stretch !important;
    margin:0 !important;
    text-align:right !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
    display:block !important;
    font-size:clamp(8.5px, 2.25vw, 11px) !important;
    line-height:1.35 !important;
    -webkit-line-clamp:unset !important;
    -webkit-box-orient:unset !important;
  }
}


/* =========================================================
   FIX REAL / Sliders Home + Projects en ventana reducida
   En pantallas de portátil o navegador minimizado, el carrusel
   pasa a una card principal por vista para que los textos no se
   compriman ni se desmaqueten. Desktop grande queda intacto.
   ========================================================= */
@media (min-width: 769px) and (max-width: 1500px){
  .projects-section .projects-carousel,
  .projects-page .projects-latest-section .projects-carousel{
    width:min(calc(100% - 48px), 1600px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    overflow:hidden !important;
  }

  .projects-section .projects-track,
  .projects-page .projects-latest-section .projects-track{
    gap:18px !important;
    align-items:flex-start !important;
  }

  .projects-section .project-card,
  .projects-section .projects-carousel[data-carousel-mode="finite"] .project-card,
  .projects-page .projects-latest-section .project-card,
  .projects-page .projects-latest-section .projects-carousel[data-carousel-mode="finite"] .project-card{
    flex:0 0 calc(100% - 96px) !important;
    width:calc(100% - 96px) !important;
    max-width:calc(100% - 96px) !important;
    min-width:0 !important;
  }

  .projects-section .project-caption,
  .projects-page .projects-latest-section .project-caption{
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) max-content !important;
    column-gap:24px !important;
    row-gap:6px !important;
    width:100% !important;
    max-width:100% !important;
    min-height:64px !important;
    align-items:start !important;
    overflow:visible !important;
    opacity:1 !important;
    transform:none !important;
    pointer-events:auto !important;
  }

  .projects-section .project-title,
  .projects-page .projects-latest-section .project-title{
    grid-column:1 !important;
    grid-row:1 !important;
    min-width:0 !important;
    justify-self:start !important;
    text-align:left !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    font-size:clamp(15px, 1.65vw, 20px) !important;
    line-height:1.25 !important;
  }

  .projects-section .project-type,
  .projects-page .projects-latest-section .project-type{
    grid-column:2 !important;
    grid-row:1 !important;
    min-width:max-content !important;
    width:auto !important;
    justify-self:end !important;
    text-align:right !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
    font-size:clamp(15px, 1.65vw, 20px) !important;
    line-height:1.25 !important;
  }

  .projects-section .project-desc,
  .projects-page .projects-latest-section .project-desc{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    justify-self:stretch !important;
    margin:0 !important;
    padding:0 !important;
    text-align:right !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
    display:block !important;
    font-size:clamp(11px, 1.15vw, 14px) !important;
    line-height:1.35 !important;
    -webkit-line-clamp:unset !important;
    -webkit-box-orient:unset !important;
  }
}

@media (min-width: 769px) and (max-width: 980px){
  .projects-section .project-card,
  .projects-section .projects-carousel[data-carousel-mode="finite"] .project-card,
  .projects-page .projects-latest-section .project-card,
  .projects-page .projects-latest-section .projects-carousel[data-carousel-mode="finite"] .project-card{
    flex-basis:calc(100% - 64px) !important;
    width:calc(100% - 64px) !important;
    max-width:calc(100% - 64px) !important;
  }
}

/* =========================================================
   FIX FINAL FLUID / Sliders Home + Projects
   Mantiene la maquetación tipo desktop en ventanas reducidas:
   2 cards + preview lateral. Solo pasa a móvil real por debajo de 768px.
   ========================================================= */
@media (min-width: 769px) and (max-width: 1500px){
  .projects-section .projects-carousel,
  .projects-page .projects-latest-section .projects-carousel{
    width:min(calc(100% - 48px), 1600px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    overflow:hidden !important;
  }

  .projects-section .projects-track,
  .projects-page .projects-latest-section .projects-track{
    gap:18px !important;
    align-items:flex-start !important;
  }

  .projects-section .project-card,
  .projects-page .projects-latest-section .project-card{
    flex:0 0 calc((100% - 18px) / 2.08) !important;
    width:calc((100% - 18px) / 2.08) !important;
    max-width:calc((100% - 18px) / 2.08) !important;
    min-width:0 !important;
  }

  .projects-section .projects-carousel[data-carousel-mode="finite"] .project-card,
  .projects-page .projects-latest-section .projects-carousel[data-carousel-mode="finite"] .project-card{
    flex:0 0 calc((100% - 18px) / 2.08) !important;
    width:calc((100% - 18px) / 2.08) !important;
    max-width:calc((100% - 18px) / 2.08) !important;
    min-width:0 !important;
  }

  .projects-section .project-caption,
  .projects-page .projects-latest-section .project-caption{
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) max-content !important;
    column-gap:16px !important;
    row-gap:4px !important;
    width:100% !important;
    max-width:100% !important;
    min-height:48px !important;
    align-items:start !important;
    overflow:visible !important;
    opacity:1 !important;
    transform:none !important;
    pointer-events:auto !important;
  }

  .projects-section .project-title,
  .projects-page .projects-latest-section .project-title{
    grid-column:1 !important;
    grid-row:1 !important;
    min-width:0 !important;
    justify-self:start !important;
    text-align:left !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
    font-size:clamp(12px, 1.25vw, 15px) !important;
    line-height:1.25 !important;
    letter-spacing:.03em !important;
  }

  .projects-section .project-type,
  .projects-page .projects-latest-section .project-type{
    grid-column:2 !important;
    grid-row:1 !important;
    min-width:max-content !important;
    width:auto !important;
    justify-self:end !important;
    text-align:right !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
    font-size:clamp(12px, 1.25vw, 15px) !important;
    line-height:1.25 !important;
  }

  .projects-section .project-desc,
  .projects-page .projects-latest-section .project-desc{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    justify-self:stretch !important;
    margin:0 !important;
    padding:0 !important;
    text-align:right !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
    display:block !important;
    font-size:clamp(10px, 1.05vw, 14px) !important;
    line-height:1.35 !important;
    -webkit-line-clamp:unset !important;
    -webkit-box-orient:unset !important;
  }
}

@media (min-width: 769px) and (max-width: 1100px){
  .projects-section .projects-carousel,
  .projects-page .projects-latest-section .projects-carousel{
    width:min(calc(100% - 32px), 1600px) !important;
  }

  .projects-section .projects-track,
  .projects-page .projects-latest-section .projects-track{
    gap:14px !important;
  }

  .projects-section .project-card,
  .projects-section .projects-carousel[data-carousel-mode="finite"] .project-card,
  .projects-page .projects-latest-section .project-card,
  .projects-page .projects-latest-section .projects-carousel[data-carousel-mode="finite"] .project-card{
    flex-basis:calc((100% - 14px) / 2.04) !important;
    width:calc((100% - 14px) / 2.04) !important;
    max-width:calc((100% - 14px) / 2.04) !important;
  }

  .projects-section .project-caption,
  .projects-page .projects-latest-section .project-caption{
    column-gap:10px !important;
    min-height:44px !important;
  }

  .projects-section .project-title,
  .projects-section .project-type,
  .projects-page .projects-latest-section .project-title,
  .projects-page .projects-latest-section .project-type{
    font-size:12px !important;
  }

  .projects-section .project-desc,
  .projects-page .projects-latest-section .project-desc{
    font-size:10px !important;
  }
}

/* =========================================================
   FIX FINAL / Projects · Todos los proyectos responsive fluido
   Evita que el grid editorial mantenga 3 columnas cuando la
   ventana se reduce: desktop grande intacto, portátil 2 columnas,
   tablet/móvil 1 columna. También blinda las captions para que
   título, categoría y descripción no se pisen.
   ========================================================= */
@media (min-width: 1181px) and (max-width: 1600px){
  .projects-page .projects-gallery .projects-masonry--editorial{
    display:grid !important;
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    column-gap:clamp(42px, 4.6vw, 72px) !important;
    row-gap:clamp(70px, 7vw, 110px) !important;
    align-items:start !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--a,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--b,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--c,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--d,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--e,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--f,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--g,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--h,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--i{
    grid-column:auto !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-media{
    width:100% !important;
    max-width:100% !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-caption--meta{
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) max-content !important;
    column-gap:clamp(14px, 1.8vw, 28px) !important;
    row-gap:6px !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow:visible !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-title{
    grid-column:1 !important;
    grid-row:1 !important;
    min-width:0 !important;
    max-width:100% !important;
    justify-self:start !important;
    text-align:left !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    font-size:clamp(16px, 1.45vw, 20px) !important;
    line-height:1.25 !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-type{
    grid-column:2 !important;
    grid-row:1 !important;
    min-width:max-content !important;
    width:auto !important;
    justify-self:end !important;
    text-align:right !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
    font-size:clamp(16px, 1.45vw, 20px) !important;
    line-height:1.25 !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-desc{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    justify-self:stretch !important;
    margin-top:2px !important;
    text-align:right !important;
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
    display:block !important;
    font-size:clamp(13px, 1.2vw, 17px) !important;
    line-height:1.35 !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-desc br{
    display:block !important;
  }
}

@media (max-width: 1180px){
  .projects-page .projects-gallery .projects-masonry--editorial{
    display:grid !important;
    grid-template-columns:1fr !important;
    column-gap:0 !important;
    row-gap:clamp(52px, 7vw, 84px) !important;
    align-items:start !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--a,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--b,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--c,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--d,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--e,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--f,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--g,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--h,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--i{
    grid-column:1 / -1 !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-media{
    width:100% !important;
    max-width:100% !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-caption--meta{
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) max-content !important;
    column-gap:clamp(12px, 3vw, 24px) !important;
    row-gap:6px !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow:visible !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-title{
    grid-column:1 !important;
    grid-row:1 !important;
    min-width:0 !important;
    justify-self:start !important;
    text-align:left !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    font-size:clamp(15px, 2.5vw, 20px) !important;
    line-height:1.25 !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-type{
    grid-column:2 !important;
    grid-row:1 !important;
    min-width:max-content !important;
    justify-self:end !important;
    text-align:right !important;
    white-space:nowrap !important;
    overflow:visible !important;
    font-size:clamp(15px, 2.5vw, 20px) !important;
    line-height:1.25 !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-desc{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
    width:100% !important;
    max-width:100% !important;
    justify-self:stretch !important;
    margin-top:0 !important;
    text-align:right !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
    display:block !important;
    font-size:clamp(10px, 2vw, 14px) !important;
    line-height:1.35 !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-desc br{
    display:none !important;
  }
}

@media (max-width: 560px){
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-caption--meta{
    grid-template-columns:minmax(0, 1fr) !important;
    row-gap:4px !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-title,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-type,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-desc{
    grid-column:1 !important;
    width:100% !important;
    max-width:100% !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-title{
    text-align:left !important;
    justify-self:start !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-type,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-desc{
    text-align:right !important;
    justify-self:stretch !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-desc{
    font-size:clamp(9px, 2.5vw, 11px) !important;
  }
}

/* =========================================================
   FIX FINAL / Projects · Todos los proyectos responsive intermedio
   Evita solapes en ventanas reducidas tipo portátil:
   - 1181px-1480px: 2 columnas proporcionadas y tipografía fluida.
   - Los textos de cada card no se pisan: título izquierda, tipo derecha,
     descripción debajo a una línea.
   ========================================================= */
@media (min-width: 1181px) and (max-width: 1480px){
  .projects-page .projects-gallery .projects-masonry--editorial{
    display:grid !important;
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    column-gap:clamp(36px, 5vw, 72px) !important;
    row-gap:clamp(64px, 7vw, 96px) !important;
    align-items:start !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--a,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--b,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--c,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--d,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--e,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--f,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--g,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--h,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--i{
    grid-column:auto !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-media{
    width:100% !important;
    max-width:100% !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-caption--meta{
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) max-content !important;
    column-gap:clamp(12px, 1.6vw, 22px) !important;
    row-gap:6px !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow:visible !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-title,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-type{
    font-size:clamp(13px, 1.08vw, 16px) !important;
    line-height:1.25 !important;
    letter-spacing:.02em !important;
    white-space:nowrap !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-title{
    grid-column:1 !important;
    grid-row:1 !important;
    min-width:0 !important;
    justify-self:start !important;
    text-align:left !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-type{
    grid-column:2 !important;
    grid-row:1 !important;
    min-width:max-content !important;
    justify-self:end !important;
    text-align:right !important;
    overflow:visible !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-desc{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin-top:0 !important;
    justify-self:stretch !important;
    text-align:right !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
    display:block !important;
    font-size:clamp(11px, 1vw, 14px) !important;
    line-height:1.35 !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-desc br{
    display:none !important;
  }
}

@media (min-width: 1181px) and (max-width: 1280px){
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-title,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-type{
    font-size:13px !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-desc{
    font-size:11px !important;
  }
}

/* =========================================================
   FIX REAL / Projects · TODOS LOS PROYECTOS responsive
   No se cambia de 3 a 2 demasiado pronto: primero se escala
   tipografía/gaps como en los sliders. Solo baja a 2 columnas
   cuando ya no hay ancho suficiente y a 1 columna en móvil real.
   ========================================================= */
@media (min-width: 1181px) and (max-width: 1600px){
  .projects-page .projects-gallery .projects-masonry--editorial{
    display:grid !important;
    grid-template-columns:repeat(12, minmax(0, 1fr)) !important;
    column-gap:clamp(24px, 2.8vw, 42px) !important;
    row-gap:clamp(36px, 3.2vw, 52px) !important;
    align-items:start !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--a{grid-column:1 / span 4 !important;}
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--b{grid-column:5 / span 3 !important;}
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--c{grid-column:8 / span 5 !important;}
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--d{grid-column:1 / span 6 !important;}
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--e{grid-column:8 / span 4 !important;}
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--f{grid-column:2 / span 3 !important;}
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--g{grid-column:8 / span 3 !important;}
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--h{grid-column:1 / span 6 !important;}
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--i{grid-column:8 / span 3 !important;}

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-caption--meta{
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) max-content !important;
    column-gap:clamp(6px, .9vw, 14px) !important;
    row-gap:4px !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow:visible !important;
    margin-top:12px !important;
    opacity:1 !important;
    transform:none !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-title,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-type{
    font-size:clamp(10px, .95vw, 15px) !important;
    line-height:1.22 !important;
    letter-spacing:.02em !important;
    white-space:nowrap !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-title{
    grid-column:1 !important;
    grid-row:1 !important;
    min-width:0 !important;
    justify-self:start !important;
    text-align:left !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-type{
    grid-column:2 !important;
    grid-row:1 !important;
    width:auto !important;
    min-width:max-content !important;
    justify-self:end !important;
    text-align:right !important;
    overflow:visible !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-desc{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    justify-self:stretch !important;
    margin-top:0 !important;
    text-align:right !important;
    white-space:normal !important;
    overflow:visible !important;
    display:block !important;
    font-size:clamp(9px, .82vw, 13px) !important;
    line-height:1.32 !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-desc br{
    display:block !important;
  }
}

@media (min-width: 769px) and (max-width: 1180px){
  .projects-page .projects-gallery .projects-masonry--editorial{
    display:grid !important;
    grid-template-columns:repeat(6, minmax(0, 1fr)) !important;
    column-gap:clamp(24px, 4vw, 44px) !important;
    row-gap:clamp(44px, 6vw, 72px) !important;
    align-items:start !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--a,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--c,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--f{grid-column:1 / span 3 !important;}
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--b,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--e,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--g,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--i{grid-column:4 / span 3 !important;}
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--d,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--h{grid-column:1 / span 6 !important;}

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-caption--meta{
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) max-content !important;
    column-gap:clamp(8px, 1.5vw, 18px) !important;
    row-gap:5px !important;
    min-width:0 !important;
    overflow:visible !important;
    opacity:1 !important;
    transform:none !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-title,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-type{
    font-size:clamp(12px, 1.65vw, 16px) !important;
    line-height:1.22 !important;
    white-space:nowrap !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-title{
    min-width:0 !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    text-align:left !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-type{
    min-width:max-content !important;
    text-align:right !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-desc{
    grid-column:1 / -1 !important;
    width:100% !important;
    max-width:100% !important;
    text-align:right !important;
    white-space:nowrap !important;
    overflow:visible !important;
    font-size:clamp(10px, 1.45vw, 14px) !important;
    line-height:1.35 !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-desc br{
    display:none !important;
  }
}

@media (max-width: 768px){
  .projects-page .projects-gallery .projects-masonry--editorial{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:clamp(42px, 8vw, 64px) !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--a,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--b,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--c,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--d,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--e,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--f,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--g,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--h,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card--i{
    grid-column:1 / -1 !important;
  }

  .projects-page .projects-gallery .projects-masonry--editorial .masonry-caption--meta{
    opacity:1 !important;
    transform:none !important;
  }
}

/* =========================================================
   FIX FINAL / Visibilidad de títulos y descripciones
   En sliders y en "Todos los proyectos" la información queda
   oculta por defecto en cualquier breakpoint y aparece solo
   con hover/focus/press/tap.
   ========================================================= */
.project-card .project-caption,
.projects-latest-card .projects-latest-caption,
.projects-page .projects-latest-section .project-caption,
.projects-page .projects-gallery .projects-masonry--editorial .masonry-caption--meta{
  opacity:0 !important;
  transform:translateY(10px) !important;
  transition:opacity .25s ease, transform .25s ease !important;
  pointer-events:none !important;
}

.project-card:hover .project-caption,
.project-card:focus-visible .project-caption,
.project-card:active .project-caption,
.project-card.is-touch-revealed .project-caption,
.projects-latest-card:hover .projects-latest-caption,
.projects-latest-card:focus-visible .projects-latest-caption,
.projects-latest-card:active .projects-latest-caption,
.projects-latest-card.is-touch-revealed .projects-latest-caption,
.projects-page .projects-latest-section .project-card:hover .project-caption,
.projects-page .projects-latest-section .project-card:focus-visible .project-caption,
.projects-page .projects-latest-section .project-card:active .project-caption,
.projects-page .projects-latest-section .project-card.is-touch-revealed .project-caption,
.projects-page .projects-gallery .projects-masonry--editorial .masonry-card:hover .masonry-caption--meta,
.projects-page .projects-gallery .projects-masonry--editorial .masonry-card:focus-visible .masonry-caption--meta,
.projects-page .projects-gallery .projects-masonry--editorial .masonry-card:active .masonry-caption--meta,
.projects-page .projects-gallery .projects-masonry--editorial .masonry-card.is-touch-revealed .masonry-caption--meta{
  opacity:1 !important;
  transform:translateY(0) !important;
}

@media (hover:none){
  .project-card .project-caption,
  .projects-latest-card .projects-latest-caption,
  .projects-page .projects-latest-section .project-caption,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-caption--meta{
    opacity:0 !important;
    transform:translateY(10px) !important;
  }

  .project-card:active .project-caption,
  .project-card.is-touch-revealed .project-caption,
  .projects-latest-card:active .projects-latest-caption,
  .projects-latest-card.is-touch-revealed .projects-latest-caption,
  .projects-page .projects-latest-section .project-card:active .project-caption,
  .projects-page .projects-latest-section .project-card.is-touch-revealed .project-caption,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card:active .masonry-caption--meta,
  .projects-page .projects-gallery .projects-masonry--editorial .masonry-card.is-touch-revealed .masonry-caption--meta{
    opacity:1 !important;
    transform:translateY(0) !important;
  }
}


/* Fix: el título del hero de Projects debe ser un enlace real y no quedar bloqueado por el swipe */
.projects-hero-title{
  pointer-events:auto;
  z-index:10;
}
.projects-hero-title-link{
  display:inline-block;
  color:inherit;
  text-decoration:none;
  cursor:pointer;
  pointer-events:auto;
}
.projects-hero-title-link:hover{
  opacity:.86;
}
