/* =========================
   Hero: sticker "rojo.png" (calcomanía)
   ========================= */
.page-home .hero-splash__markWrap{
  position: relative;
  display: inline-block;
}

/* El logo ya tiene su propia animación en styles.css; aquí solo ajustamos layout */
.page-home .hero-splash__markWrap .hero-splash__mark{
  margin: 0 auto 12px;
}

.page-home .hero-splash__sticker{
  position: absolute;
  left: 6%;
  bottom: -4%;
  width: clamp(92px, 14vw, 170px);
  height: auto;
  z-index: 2;
  pointer-events: none;

  /* estado inicial (antes de "pegarse") */
  opacity: 0;
  transform-origin: 55% 60%;
  transform: translate3d(-16px, 18px, 0) rotate(-16deg) scale(.18);

  /* shadow fijo para que no "flashee" durante la animación */
  filter: drop-shadow(0 18px 30px rgba(0,0,0,.38));
}

@keyframes heroStickerDecal{
  0%{
    opacity: 0;
    transform: translate3d(-16px, 18px, 0) rotate(-16deg) scale(.18);
  }
  55%{
    opacity: 1;
    transform: translate3d(0, 0, 0) rotate(2deg) scale(1.18);
  }
  72%{
    /* “squish” del pegado */
    transform: translate3d(0, 0, 0) rotate(-2deg) scale(0.95, 1.07);
  }
  86%{
    transform: translate3d(0, 0, 0) rotate(1deg) scale(1.03, 0.98);
  }
  100%{
    opacity: 1;
    transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
  }
}

/* El sticker se pega DESPUÉS de que entra el logo central */
.page-home.is-loaded .hero-splash__sticker{
  will-change: transform, opacity;
  backface-visibility: hidden;
  animation: heroStickerDecal 980ms cubic-bezier(.18, 1, .28, 1) 1350ms both;
}

@media (max-width: 560px){
  .page-home .hero-splash__sticker{
    left: 2%;
    bottom: -2%;
    width: clamp(84px, 24vw, 140px);
  }
}

@media (prefers-reduced-motion: reduce){
  .page-home .hero-splash__sticker{
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }
}

/* =========================
   Sección 03: Servicios (3 cards, mismo “peso” que 6)
   ========================= */
@media (min-width: 981px){
  .page-home .services-feature__inner{
    /* reduce el “aire” antes de clientes */
    padding-bottom: 26px;
  }
  .page-home .services-grid{
    /* antes eran 2 filas; con 3 cards hacemos la fila más alta para ocupar el mismo bloque */
    min-height: 340px;
  }
  .page-home .services-grid .service-tile{
    min-height: 320px;
  }
}
@media (max-width: 980px){
  .page-home .services-feature__inner{
    padding-bottom: 18px;
  }
  /* En mobile/tablet se apilan; no conviene que queden gigantes */
  .page-home .services-grid .service-tile{
    min-height: 180px;
  }
}

/* =========================
   Subpage Servicios: 3 cards “premium” (se note que son solo 3)
   ========================= */
/* Intro más ancho (evita saltos raros por el max-width global de 60ch) */
.page-services .section-title{
  align-items: flex-start;
  gap: 16px;
}
.page-services .section-title p{
  max-width: none;
  width: 100%;
  line-height: 1.85;
  text-wrap: pretty;
  hyphens: none;
}

/* Layout: una columna, “paneles” tipo ficha (texto + imagen) */
.page-services .services{
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
}

.page-services .services > .card.service-pro{
  position: relative;
  padding: 18px;
  border-radius: 18px;
  border: 1px solid rgba(13,13,13,.10);
  background:
    radial-gradient(900px 520px at 18% 10%, rgba(7,18,73,.06), transparent 55%),
    radial-gradient(760px 420px at 85% 30%, rgba(217,233,66,.12), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,1), rgba(255,255,255,1));
  box-shadow: 0 18px 55px rgba(0,0,0,.10);
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr);
  grid-template-areas: "body media";
  gap: 18px;
  align-items: stretch;
  overflow: hidden;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

/* Imagen intercalada izquierda/derecha en desktop */
@media (min-width: 981px){
  .page-services .services > .card.service-pro{
    /* altura consistente */
    min-height: 440px;
    padding: 20px;
  }
  .page-services .services > .card.service-pro:nth-child(even){
    grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr);
    grid-template-areas: "media body";
  }
}
@media (max-width: 980px){
  .page-services .services > .card.service-pro{
    grid-template-columns: 1fr;
    grid-template-areas:
      "media"
      "body";
  }
}

/* Línea divisoria superior (subtle) entre paneles */
.page-services .services > .card.service-pro::before{
  content:"";
  position:absolute;
  left: 18px;
  right: 18px;
  top: 0;
  height: 1px;
  background: rgba(13,13,13,.10);
  opacity: .0;
}
.page-services .services > .card.service-pro + .card.service-pro::before{
  opacity: 1;
}

.page-services .service-pro__body{
  grid-area: body;
  max-width: 76ch;
  display: flex;
  flex-direction: column;
  height: 100%;
  position: relative;
}
.page-services .service-pro__body > *{
  position: relative;
  z-index: 1;
}

/* Número grande sutil (01/02/03) dentro del área de texto (evita que se tape con la imagen) */
.page-services .service-pro__body::after{
  position:absolute;
  right: 8px;
  bottom: -6px;
  font-family: var(--font-title);
  font-weight: 900;
  letter-spacing: 2px;
  font-size: 76px;
  line-height: 1;
  color: rgba(7,18,73,.08);
  pointer-events:none;
  user-select:none;
  z-index: 0;
}
.page-services .services > .card.service-pro:nth-child(1) .service-pro__body::after{ content:"01"; }
.page-services .services > .card.service-pro:nth-child(2) .service-pro__body::after{ content:"02"; }
.page-services .services > .card.service-pro:nth-child(3) .service-pro__body::after{ content:"03"; }

/* Cuando la imagen va a la izquierda (cards pares), pegar el número al lado de la imagen */
@media (min-width: 981px){
  .page-services .services > .card.service-pro:nth-child(even) .service-pro__body::after{
    left: 8px;
    right: auto;
  }
}
.page-services .services > .card.service-pro h3{
  margin: 2px 0 10px;
  color: var(--ink);
  letter-spacing: 1.4px;
}
.page-services .services > .card.service-pro p{
  margin: 0 0 14px;
  color: rgba(13,13,13,.72);
  line-height: 1.8;
}
.page-services .service-pro__label{
  margin: 10px 0 10px;
  font-family: var(--font-subtitle);
  font-weight: 900;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  font-size: 12px;
  color: rgba(13,13,13,.70);
}
.page-services .service-pro__list{
  margin: 0;
  padding-left: 18px;
  color: rgba(13,13,13,.78);
  line-height: 1.75;
}
.page-services .service-pro__list li{
  break-inside: avoid;
}
.page-services .service-pro__list li + li{
  margin-top: 8px;
}
.page-services .service-pro__list li::marker{
  color: rgba(7,18,73,.85);
}

.page-services .service-pro__media{
  grid-area: media;
  border-radius: 16px;
  min-height: 220px;
  background-size: cover;
  background-position: center;
  box-shadow: inset 0 0 0 1px rgba(13,13,13,.08);
  position: relative;
  overflow: hidden;
}
.page-services .service-pro__media::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(135deg, rgba(13,13,13,.12), rgba(13,13,13,.45)),
    radial-gradient(520px 240px at 25% 20%, rgba(217,233,66,.18), transparent 60%);
}

/* Hover sutil */
.page-services .services > .card.service-pro:hover{
  transform: translateY(-2px);
  box-shadow: 0 24px 70px rgba(0,0,0,.14);
  border-color: rgba(7,18,73,.18);
}

/* En desktop: listas en 2 columnas para que todas las cards “respiren” y queden parejas */
@media (min-width: 981px){
  /* Card 01: 2 columnas reales (control total: 4 items izq / 3 der) */
  .page-services .services > .card.service-pro:nth-child(1) .service-pro__listGrid{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 26px;
    align-items: start;
  }
}

@media (max-width: 980px){
  .page-services .service-pro__listGrid{
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
  }
  .page-services .service-pro__listGrid .service-pro__list + .service-pro__list{
    margin-top: 10px;
  }
}

/* =========================
   Subpage Proyectos: modal gallery
   ========================= */
.page-projects .section-title p{
  max-width: none;      /* evita el salto forzado por 60ch */
  white-space: nowrap;  /* 1 renglón en desktop */
}
@media (max-width: 760px){
  .page-projects .section-title p{white-space: normal;}
}

.page-projects.is-modal-open{
  overflow: hidden;
}
.project-modal{
  position: fixed;
  inset: 0;
  z-index: 999;
  display: grid;
  place-items: center;
  padding: 18px;
}
.project-modal[hidden]{
  display: none !important;
}
.project-modal__overlay{
  position: absolute;
  inset: 0;
  background: rgba(13,13,13,.62);
}
.project-modal__dialog{
  position: relative;
  width: min(980px, 100%);
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 30px 90px rgba(0,0,0,.30);
  border: 1px solid rgba(255,255,255,.10);
  overflow: hidden;
  z-index: 1;
}
.project-modal__close{
  position: absolute;
  top: 12px;
  right: 12px;
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 1px solid rgba(13,13,13,.14);
  background: rgba(255,255,255,.92);
  box-shadow: 0 10px 22px rgba(0,0,0,.12);
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
}
.project-modal__grid{
  display: grid;
  grid-template-columns: 1.45fr 1fr;
}
@media (max-width: 900px){
  .project-modal__grid{grid-template-columns: 1fr;}
}
.project-modal__media{
  position: relative;
  background: rgba(13,13,13,.06);
  min-height: 360px;
}
.project-modal__img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.project-modal__nav{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 0;
  background: rgba(255,255,255,.72);
  color: rgba(13,13,13,.92);
  font-size: 28px;
  cursor: pointer;
  box-shadow: 0 10px 22px rgba(0,0,0,.14);
}
.project-modal__nav:disabled{
  opacity: .35;
  cursor: default;
}
.project-modal__nav--prev{left: 14px;}
.project-modal__nav--next{right: 14px;}
.project-modal__body{
  padding: 22px 22px 24px;
}
.project-modal__tag{
  display: inline-flex;
  align-items: center;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(210,211,213,.45);
  color: rgba(13,13,13,.80);
  font-family: var(--font-subtitle);
  font-weight: 900;
  font-size: 12px;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.project-modal__title{
  margin: 12px 0 10px;
  color: var(--ink);
  font-family: var(--font-title);
  text-transform: uppercase;
  letter-spacing: 1px;
  line-height: 1.05;
}
.project-modal__desc{
  margin: 0;
  color: rgba(13,13,13,.74);
  line-height: 1.7;
}
.project-modal__count{
  margin-top: 14px;
  color: rgba(13,13,13,.55);
  font-family: var(--font-body);
  font-weight: 300;
  letter-spacing: 1px;
}

/* Clientes: mismo ancho que las cards + menos espacio vertical */
.page-home .clients-band{
  margin-top: 24px;       /* antes 64px */
  padding-bottom: 64px;   /* antes 84px */
}
.page-home .clients-band__barInner{
  margin-left: 0;         /* quita el “stretch” */
  margin-right: 0;
}
.page-home .clients-band .logo-strip{
  margin-top: 14px;       /* antes 18px */
  margin-left: 0;         /* quita el “stretch” */
  margin-right: 0;
}

/* Clientes: logos más grandes + carrusel más lento */
.page-home .clients-band .marquee{
  animation-duration: 28s; /* antes 18s */
}
.page-home .clients-band .logo{
  min-width: 220px;       /* antes 180px (styles.css) */
  padding: 12px 18px;     /* antes 10px 14px */
}
.page-home .clients-band .logo img{
  height: 46px;           /* antes 34px */
  max-width: 190px;       /* antes 150px */
}

/* Logos muy claros (blanco/gris): oscurecer a gris para que no se pierdan */
.page-home .clients-band .logo img.logo-img--dim{
  filter: grayscale(1) brightness(0) contrast(1.05);
  opacity: .62; /* convierte el negro en gris oscuro */
}

/* =========================
   Watermark reveal (02–05)
   ========================= */
@keyframes watermarkReveal{
  0%{
    opacity: 0;
    filter: blur(6px);
    transform: translate(-50%, -50%) scale(.94);
  }
  70%{
    opacity: 1;
    filter: blur(0px);
    transform: translate(-50%, -50%) scale(1.01);
  }
  100%{
    opacity: 1;
    filter: blur(0px);
    transform: translate(-50%, -50%) scale(1);
  }
}

/* Fuerza animación aunque styles.css tenga transition viejo */
.projects-feature.in-view::before,
.services-feature.in-view::before,
.about-feature.in-view::before,
.contact-feature.in-view::before{
  animation: watermarkReveal 1100ms cubic-bezier(.22,1,.36,1) 80ms both;
  transition: none !important;
}

@media (prefers-reduced-motion: reduce){
  .projects-feature.in-view::before,
  .services-feature.in-view::before,
  .about-feature.in-view::before,
  .contact-feature.in-view::before{
    animation: none !important;
    opacity: 1 !important;
    filter: none !important;
    transform: translate(-50%, -50%) scale(1) !important;
  }
}

/* =========================
   Sección 05 (Contacto)
   ========================= */
.contact-feature{
  position: relative;
  /* un poco más alta (más aire vertical) */
  padding: 140px 0 0;
  min-height: clamp(760px, 92vh, 1080px);
  overflow: hidden;
  background: #fff;
}
@media (max-width: 840px){
  .contact-feature{
    padding: 108px 0 0;
    min-height: clamp(700px, 88vh, 980px);
  }
}

.contact-feature::before{
  content:"05";
  position: absolute;
  left: 18%;
  top: 34%;
  transform: translate(-50%, -50%) scale(.94);
  font-family: "Fira Code", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-weight: 400;
  font-variant-numeric: slashed-zero;
  font-feature-settings: "zero" 1;
  font-size: clamp(260px, 26vw, 560px);
  line-height: 1;
  letter-spacing: -0.08em;
  color: rgba(13,13,13,.05);
  opacity: 0;
  pointer-events: none;
  z-index: 0;
}

.contact-feature__inner{
  position: relative;
  z-index: 1;
  padding-bottom: 26px; /* evita espacio en blanco entre formulario y mapa */
}

/* Mapa: mismo ancho que el bloque (panel + formulario) */
.contact-map{
  max-width: var(--max);
  margin: 18px auto 44px; /* separación vs footer */
  padding: 0 20px; /* igual que .container */
}
.contact-map iframe{
  display: block;
  width: 100%;
  height: clamp(300px, 42vh, 440px);
  border: 0;
  border-radius: 14px;
  border: 1px solid rgba(13,13,13,.10);
  box-shadow: 0 16px 46px rgba(0,0,0,.10);
}
.contact-feature__top{margin-bottom: 44px;}
.contact-feature__step{
  display:flex;
  align-items:center;
  gap: 18px;
  color: rgba(13,13,13,.26);
  font-family: var(--font-subtitle);
  font-weight: 900;
  letter-spacing: 1.2px;
  font-size: 16px;
}
.contact-feature__stepNum{
  display:inline-flex;
  align-items: baseline;
  font-size: 24px;
  letter-spacing: 2px;
  font-family: "Fira Code", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-weight: 400;
  font-variant-numeric: slashed-zero;
  font-feature-settings: "zero" 1;
}
.contact-feature__line{
  height: 3px;
  flex: 1 1 auto;
  max-width: 940px;
  background: linear-gradient(90deg, rgba(13,13,13,.12), rgba(7,18,73,.55));
  border-radius: 999px;
  position: relative;
}
.contact-feature__line::after{
  /* quitar círculo final */
  content: none !important;
}

/* =========================
   Líneas de inicio (02–05)
   ========================= */
/* Quitar el círculo final en todas las secciones */
.projects-feature__line::after,
.services-feature__line::after,
.about-feature__line::after,
.contact-feature__line::after{
  content: none !important;
}

/* Quitar el brillo/amarillo en la línea de secciones 02 y 04 */
.projects-feature__line{
  background: rgba(255,255,255,.70) !important;
}
.about-feature__line{
  background: rgba(255,255,255,.70) !important;
}
.contact-feature__grid{
  display:grid;
  grid-template-columns: 1fr 1.25fr;
  gap: 34px;
  /* Estirar ambas columnas para que queden a la misma altura */
  align-items: stretch;
}
@media (max-width: 980px){
  .contact-feature__grid{grid-template-columns: 1fr;}
}
.contact-feature__left{max-width: 520px;}
.contact-feature__title{
  margin: 0 0 24px;
  font-family: var(--font-title);
  text-transform: uppercase;
  letter-spacing: 1.2px;
  color: var(--black);
  font-size: clamp(40px, 5vw, 58px);
  line-height: .92;
}

/* Panel negro izquierdo */
.contact-feature__left{
  display: flex;
  flex-direction: column;
  height: 100%;
}
.contact-panel{
  background: #0d0d0d;
  color: rgba(255,255,255,.92);
  border-radius: 14px;
  padding: 18px;
  box-shadow: 0 16px 46px rgba(0,0,0,.14);
  border: 1px solid rgba(255,255,255,.06);
  /* que el panel pueda estirar para igualar altura */
  flex: 1 1 auto;
}
.contact-panel__row{
  display:flex;
  gap: 12px;
  padding: 12px 0;
}
.contact-panel__row + .contact-panel__row{
  border-top: 1px solid rgba(255,255,255,.10);
}
.contact-panel__icon{
  width: 34px;
  height: 34px;
  border-radius: 8px;
  display:grid;
  place-items:center;
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.92);
  flex: 0 0 auto;
}
.contact-panel__label{
  font-family: var(--font-subtitle);
  font-weight: 900;
  letter-spacing: 1.6px;
  font-size: 12px;
  text-transform: uppercase;
  color: rgba(255,255,255,.92);
}
.contact-panel__value{
  display:block;
  margin-top: 2px;
  color: rgba(255,255,255,.82);
  font-size: 13px;
}
.contact-panel__value:hover{color: #fff; text-decoration: underline;}
.contact-panel__text{
  margin-top: 4px;
  color: rgba(255,255,255,.74);
  font-size: 13px;
  line-height: 1.55;
}

/* Card del formulario */
.contact-feature__right{
  height: 100%;
}
.contact-formCard{
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 16px 46px rgba(0,0,0,.10);
  border: 1px solid rgba(13,13,13,.10);
  padding: 22px;
  position: relative;
  height: 100%;
  display: flex;
  flex-direction: column;
}
.contact-formCard::before{
  content:"";
  position:absolute;
  left: 22px;
  right: 22px;
  top: 18px;
  height: 5px;
  border-radius: 999px;
  background: rgba(7,18,73,.98);
}
.contact-form{
  padding-top: 14px;
  height: 100%;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}
.contact-form__grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 18px;
  /* ocupa el espacio disponible y deja acciones abajo */
  flex: 1 1 auto;
}
@media (max-width: 760px){
  .contact-form__grid{grid-template-columns: 1fr;}
}
.contact-form__field{display:flex; flex-direction: column; gap: 8px;}
.contact-form__field--full{grid-column: 1 / -1;}
.contact-form label{
  font-family: var(--font-subtitle);
  font-weight: 900;
  letter-spacing: .8px;
  text-transform: uppercase;
  font-size: 12px;
  color: rgba(13,13,13,.80);
}
.contact-form input,
.contact-form textarea{
  font: inherit;
  padding: 12px 12px;
  border-radius: 0;
  border: 0;
  background: rgba(13,13,13,.06);
  outline: none;
}
.contact-form input:focus,
.contact-form textarea:focus{
  background: rgba(13,13,13,.04);
  box-shadow: inset 0 0 0 2px rgba(7,18,73,.35);
}
.contact-form textarea{
  min-height: 180px;
  resize: vertical;
}
.contact-form__actions{
  margin-top: auto;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.contact-form__hint{color: rgba(13,13,13,.60);}

/* Hover amarillo del botón (como tu imagen) */
.contact-feature .btn.btn-primary{
  border-radius: 10px !important;
  padding: 12px 16px !important;
  letter-spacing: 1.2px;
  text-transform: uppercase;
}
.contact-feature .btn.btn-primary:hover{
  background: var(--accent) !important;
  color: #0b0b0b !important;
  opacity: 1 !important;
}

/* =========================
   Footer (como el diseño)
   ========================= */
.footer{
  padding: 0 !important;
  border-top: 0 !important;
  background: transparent !important;
  color: var(--ink);
}
.footer__bar{
  position: relative;
  background: var(--muted);
}
/* franja inferior oscura como la imagen */
.footer__bar::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height: 12px;
  background: rgba(13,13,13,.38);
}
.footer__inner{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 20px 24px;
  font-size: 14px;
  line-height: 1.35;
}
.footer__left{white-space: nowrap;}
.footer__pipe{
  margin: 0 10px;
  color: rgba(7,18,73,.55);
}
.footer__links{
  display:flex;
  align-items:center;
  gap: 0;
  color: rgba(7,18,73,.90);
  white-space: nowrap;
}
.footer__links a{
  color: rgba(7,18,73,.90);
  text-decoration: none;
}
.footer__links a:hover{ text-decoration: underline; }
.footer__links a + a::before{
  content:"|";
  margin: 0 14px;
  color: rgba(7,18,73,.55);
}
.footer__social{
  display:flex;
  align-items:center;
  gap: 10px;
}
.footer__socialBtn{
  width: 34px;
  height: 34px;
  display:grid;
  place-items:center;
  border-radius: 6px;
  border: 2px solid rgba(7,18,73,.92);
  color: rgba(7,18,73,.95);
  background: rgba(244,244,245,.35);
  transition: background .15s ease, color .15s ease, transform .12s ease, border-color .15s ease;
}
.footer__socialBtn:hover{
  background: rgba(7,18,73,.98);
  color: #fff;
  border-color: rgba(7,18,73,.98);
  transform: translateY(-1px);
}
.footer__socialBtn svg{width: 18px; height: 18px; display:block}

@media (max-width: 980px){
  .footer__inner{
    flex-wrap: wrap;
    justify-content: center;
    text-align: center;
    row-gap: 10px;
  }
  .footer__left{white-space: normal;}
  .footer__links{white-space: normal;}
}

/* =======================================================
   Página NOSOTROS — perfil, experiencia y acordeones
   ======================================================= */
.about-page{ display:grid; gap: 22px; }

.about-intro h2{
  margin: 0 0 10px;
  color: var(--ink);
  font-family: var(--font-title);
  text-transform: uppercase;
  letter-spacing: 1px;
}
.about-intro p{
  margin: 0;
  color: rgba(13,13,13,.78);
  max-width: 70ch;
  line-height: 1.6;
}

.about-grid{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 22px;
  align-items:start;
}
.about-col{ display:grid; gap: 18px; }
@media (max-width: 900px){
  .about-grid{ grid-template-columns: 1fr; }
}

/* --- Tarjeta de perfil --- */
.about-bio h3{
  margin: 0 0 14px;
  color: var(--ink);
  font-family: var(--font-title);
  text-transform: uppercase;
  letter-spacing: .5px;
  font-size: clamp(20px, 2.4vw, 28px);
}
.about-bio__photo{
  float: left;
  width: 150px;
  height: auto;
  border-radius: 14px;
  margin: 4px 18px 10px 0;
  box-shadow: var(--shadow);
  border: 1px solid rgba(13,13,13,.06);
}
.about-bio__body{ color: rgba(13,13,13,.8); line-height: 1.6; }
.about-bio__body p{ margin: 0 0 12px; }
.about-bio__list{
  clear: both;
  margin: 8px 0 0;
  padding-left: 18px;
  color: rgba(13,13,13,.8);
  line-height: 1.55;
}
.about-bio__list li{ margin: 0 0 8px; }

/* --- Tarjeta de experiencia (KPIs) --- */
.about-exp h3{
  margin: 0 0 14px;
  color: var(--ink);
  font-family: var(--font-subtitle);
  font-weight: 900;
}
.about-exp__kpis{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  text-align: center;
}
.about-exp__kpis strong{
  display:block;
  font-size: clamp(28px, 3.4vw, 40px);
  font-family: var(--font-title);
  color: var(--ink);
  letter-spacing: 1px;
  line-height: 1;
}
.about-exp__kpis span{
  display:block;
  margin-top: 6px;
  color: rgba(13,13,13,.7);
  font-family: var(--font-subtitle);
  font-weight: 900;
  font-size: 14px;
}

/* --- Acordeones (dropdown animado) --- */
.accordion{
  border-radius: 14px;
  overflow: hidden;
}
.accordion__head{
  width: 100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding: 14px 18px;
  background: var(--accent);
  color: var(--ink);
  border: none;
  border-radius: 14px;
  cursor: pointer;
  font-family: var(--font-subtitle);
  font-weight: 900;
  font-size: 17px;
  text-align: left;
  transition: filter .2s ease;
}
.accordion__head:hover{ filter: brightness(.97); }
.accordion__chev{
  width: 20px;
  height: 20px;
  flex: none;
  transition: transform .35s ease;
}
.accordion__head[aria-expanded="false"] .accordion__chev{ transform: rotate(-90deg); }

.accordion__panel{
  display:grid;
  grid-template-rows: 1fr;
  transition: grid-template-rows .4s ease;
}
.accordion__panel.is-collapsed{ grid-template-rows: 0fr; }
.accordion__inner{ overflow: hidden; }
.accordion__body{
  padding: 16px 18px 4px;
  color: rgba(13,13,13,.8);
  line-height: 1.55;
}
.accordion__body p{ margin: 0 0 12px; }
.accordion__body ul{ margin: 0; padding-left: 18px; }
.accordion__body li{ margin: 0 0 10px; }

/* =======================================================
   Página PROYECTOS — galerías por categoría (rediseño)
   ======================================================= */
.galleries{ display:grid; gap: 26px; }
.galleries__msg{
  color: var(--ink);
  text-align:center;
  padding: 40px 0;
}
.cat-gallery{
  background: var(--card);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  border: 1px solid rgba(13,13,13,.06);
  overflow: hidden;
}
.cat-gallery__banner{
  position: relative;
  height: 300px;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  cursor: pointer;
  transition: filter .25s ease;
}
.cat-gallery__banner:hover{ filter: brightness(.94); }
.cat-gallery__banner:focus-visible{ outline: 3px solid var(--ink); outline-offset: -3px; }
.cat-gallery__label{
  position: absolute;
  left: 20px;
  bottom: 18px;
  display: inline-flex;
  align-items: center;
  padding: 10px 20px;
  border-radius: 999px;
  background: rgba(244,244,245,.94);
  color: var(--ink);
  font-family: var(--font-title);
  font-weight: 900;
  letter-spacing: 1px;
  text-transform: uppercase;
  font-size: 18px;
  box-shadow: 0 10px 22px rgba(0,0,0,.20);
}
.cat-gallery__desc{
  margin: 0;
  padding: 20px 24px 24px;
  color: rgba(13,13,13,.78);
  line-height: 1.6;
}
@media (max-width: 640px){
  .cat-gallery__banner{ height: 210px; }
  .cat-gallery__label{ font-size: 15px; padding: 8px 16px; left: 14px; bottom: 14px; }
  .cat-gallery__desc{ padding: 16px 18px 20px; }
}

/* --- Ajustes del modal para el rediseño de proyectos --- */
.page-projects .project-modal__media{
  padding: 16px;
  background: #fff;
  min-height: 0;
}
.page-projects .project-modal__img{
  border-radius: 14px;
  height: 100%;
  max-height: 74vh;
}
.page-projects .project-modal__nav--prev{ left: 26px; }
.page-projects .project-modal__nav--next{ right: 26px; }
.page-projects .project-modal__nav:disabled{ opacity: 0; pointer-events: none; }
.page-projects .project-modal__desc p{ margin: 0 0 14px; }
.page-projects .project-modal__desc p:last-child{ margin-bottom: 0; }
