/* Página y ficha de proyectos: composición del PDF con la escala común. */
.page-projects .site-header { background: var(--negro); }
.page-projects main { padding-top: 145px; }
.projects-page-section { position: relative; }
.projects-page-section > .linkedin-tab { top: 135px; }
.projects-page-intro { display: grid; grid-template-columns: minmax(0, 650px) 252px; justify-content: space-between; gap: 64px; align-items: start; }
.projects-page-intro .text-large { margin-bottom: 0; }
.projects-page-symbol { width: 252px; height: 330px; object-fit: contain; margin-right: 100px; justify-self: end; }
.projects-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 90px 32px; margin-top: 58px; }
.projects-card { min-width: 0; }
.projects-card-link { display: block; }
.projects-card-visual { position: relative; aspect-ratio: 570 / 261; background: var(--gris_2); }
.project-status { display: inline-block; padding: 5px 16px; background: var(--gris_in); color: var(--blanco); font-size: 14px; line-height: 1.4; text-transform: uppercase; }
.project-status[data-status="completed"] { background: var(--verde); }
.projects-card-body { padding-top: 28px; }
.projects-card .eyebrow { margin-bottom: 8px; font-size: 14px; }
.projects-card h3 { margin-bottom: 13px; font-size: 19px; }
.projects-card-client { margin-bottom: 13px; }
.project-facts { margin: 0; }
.project-facts dt { font-size: 14px; text-transform: uppercase; }
.project-facts dd { margin: 0; }
.projects-card-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; padding-top: 14px; border-top: 1px solid var(--gris_2); font-size: 16px; }
.projects-card-link:hover h3, .projects-card-link:focus-visible h3 { color: var(--verde); }
.projects-card-link { color: var(--negro); }
.projects-card h3 { transition: color .3s ease; }
.projects-grid { scroll-margin-top: 24px; }
.projects-pagination { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 58px; }
.projects-pagination-pages { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; padding: 0; margin: 0; list-style: none; }
.projects-pagination-number { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--gris_2); border-radius: 50%; font-size: 16px; }
.projects-pagination-number[aria-current="page"] { border-color: var(--verde); background: var(--verde); color: var(--blanco); font-weight: 600; }
a.projects-pagination-number:hover, a.projects-pagination-number:focus-visible { border-color: var(--verde); color: var(--verde); }
.projects-pagination-arrow { flex-shrink: 0; }
.projects-pagination-arrow .arrow-icon { width: 35px; height: 15px; color: var(--negro); transition: transform .3s ease; }
.projects-pagination-arrow[aria-disabled="true"] .arrow-icon { color: var(--gris_2); }
a.projects-pagination-arrow[rel="prev"]:hover .arrow-icon { transform: translateX(-5px); }
a.projects-pagination-arrow[rel="next"]:hover .arrow-icon { transform: translateX(5px); }
@media (prefers-reduced-motion: reduce) {
  .projects-pagination-arrow .arrow-icon { transition: none; }
  a.projects-pagination-arrow:hover .arrow-icon { transform: none; }
}

body:has(.project-dialog[open]) { overflow: hidden; }
.project-dialog { position: fixed; inset: 24px; width: min(1280px, calc(100% - 48px)); max-width: none; max-height: calc(100vh - 48px); max-height: calc(100dvh - 48px); padding: 0; margin: auto; border: 1px solid var(--gris_2); background: var(--blanco); color: var(--negro); overscroll-behavior: contain; overflow-y: auto; }
.project-dialog { z-index: 6; }
.project-dialog::backdrop { background: rgb(0 0 0 / .62); }
.project-dialog-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); }
.project-dialog-visual { min-height: 600px; background: var(--gris_2); }
.project-dialog-content { position: relative; min-width: 0; display: flex; flex-direction: column; padding: 80px 48px 28px; }
.project-dialog-content > .project-status { position: absolute; top: 0; left: 0; }
.project-dialog-close { position: absolute; top: 0; right: 0; display: grid; place-items: center; width: 44px; height: 44px; color: var(--verde); }
.project-dialog-close svg { width: 24px; height: 24px; }
.project-dialog-close:hover { color: var(--negro); }
.project-dialog-content h3 { font-size: 21px; margin-bottom: 20px; }
.project-detail-client { margin-bottom: 20px; }
.project-detail-client dd, .project-detail-facts dd { font-weight: 600; }
.project-detail-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; margin-bottom: 22px; }
.project-detail-description { border-top: 1px solid var(--gris_2); padding-top: 18px; margin-bottom: 36px; }
.project-detail-description h4 { font-size: 14px; font-weight: 400; text-transform: uppercase; margin: 0 0 18px; }
.project-detail-description p { margin-bottom: 0; }
.project-detail-contact { margin-top: auto; margin-bottom: 0; gap: 10px; }
.project-detail-contact > span { min-width: 0; }
.project-detail-contact .arrow-icon { width: 28px; color: var(--negro); }

@media (min-width: 1600px) {
  .page-projects main { padding-top: 165px; }
}
@media (max-width: 1179px) {
  .projects-page-intro { grid-template-columns: minmax(0, 650px); }
  .projects-page-symbol { display: none; }
  .projects-grid { column-gap: 24px; }
  .project-dialog-content { padding: 64px 32px 28px; }
}
@media (max-width: 1120px) {
  .page-projects main { padding-top: 115px; }
}
@media (max-width: 1023px) {
  .projects-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 58px 24px; }
  .project-dialog-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); }
  .project-dialog-content { padding-inline: 28px; }
}
@media (max-width: 767px) {
  .page-projects main { padding-top: 95px; }
  .projects-page-section > .linkedin-tab { top: 96px; }
  .projects-page-intro h1 { padding-right: 16px; }
  .projects-grid { grid-template-columns: 1fr; gap: 45px; }
  .projects-pagination { gap: 8px; margin-top: 45px; }
  .projects-pagination-pages { gap: 8px; }
  .projects-card-body { padding-top: 22px; }
  .projects-card-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .project-dialog { inset: 16px; width: calc(100% - 32px); max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); }
  .project-dialog-layout { grid-template-columns: 1fr; }
  .project-dialog-visual { min-height: 0; aspect-ratio: 570 / 261; }
  .project-dialog-content { position: static; padding: 28px 24px; }
  .project-dialog-content > .project-status { right: auto; }
  .project-dialog-close { background: var(--blanco); }
  .project-detail-contact .arrow-icon { flex-shrink: 0; }
}
@media (max-height: 650px) and (min-width: 768px) {
  .page-projects main { padding-top: 90px; }
}
@media (max-height: 550px) and (max-width: 767px) {
  .page-projects main { padding-top: 70px; }
}
