.projects:has(.featured-works){padding-top:clamp(70px,8vw,120px)}
.works-summary{max-width:640px;margin:18px 0 0;color:#c7c4bb;font-size:14px;line-height:1.7}

.featured-works{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:34px;background:#4c4d43;border:1px solid #4c4d43}
.work-card{position:relative;padding:20px 22px;background:#171917;cursor:pointer;overflow:hidden;transition:background .25s ease,color .25s ease}
.work-card:hover,.work-card:focus-visible{outline:none;background:#20231f}
.work-card:focus-visible{box-shadow:inset 0 0 0 2px #fbbb00}
.work-card-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px}
.work-number{font:700 12px/1 'Manrope',sans-serif;color:#7d7d74;letter-spacing:.08em}
.work-category{color:#fbbb00;font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.work-card h3{max-width:540px;margin:0 0 10px;font-family:'Barlow Condensed',sans-serif;font-size:clamp(26px,2.25vw,34px);line-height:.95;text-transform:uppercase}
.work-meta{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap}
.work-location{max-width:460px;margin:0;color:#e0dcd1;font-size:13px}
.work-year{margin:0;padding-left:12px;border-left:1px solid #55574f;color:#929087;font-size:11px;font-weight:700}
.work-card b{display:block;margin-top:14px;color:#fbbb00;font-size:10px;letter-spacing:.04em;text-transform:uppercase}
.work-card i{font-style:normal;margin-left:8px}

#service-dialog:has(.work-modal-layout){width:min(780px,calc(100vw - 40px));max-height:calc(100svh - 40px);padding:clamp(26px,4vw,44px);overflow:auto}
#service-dialog:has(.work-modal-layout) h2{max-width:670px;margin:6px 42px 26px 0;font-size:clamp(30px,4vw,48px);line-height:.96}
.work-modal-layout--text{display:block}
.work-facts{min-width:0}
.work-detail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:0;background:#56574f;border:1px solid #56574f}
.work-detail div{min-height:88px;padding:14px;background:#181a18}
.work-detail dt{color:#fbbb00;font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.work-detail dd{margin:7px 0 0;color:#eee9de;font-size:13px;line-height:1.35}
.work-scope{margin:24px 0 22px;padding-top:22px;border-top:1px solid #56574f}
.work-scope h3{margin:0 0 7px;font-family:'Barlow Condensed',sans-serif;font-size:25px;text-transform:uppercase}
.work-scope p{max-width:620px;margin:0;color:#d8d2c4;font-size:14px;line-height:1.55}
.work-contact{display:inline-flex;align-items:center;gap:13px;padding:13px 16px;background:#fbbb00;color:#171917;font-size:11px;font-weight:800;text-decoration:none;text-transform:uppercase}
.work-contact:hover{background:#ffd054}
.work-contact span{font-size:18px;line-height:0}

.works-media{margin-top:clamp(70px,9vw,125px);padding-top:clamp(48px,6vw,82px);border-top:1px solid #4c4d43}
.works-media-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,480px);gap:50px;align-items:end;margin-bottom:30px}
.works-media-heading h3{font-family:'Barlow Condensed',sans-serif;font-size:clamp(38px,5vw,66px);line-height:.9;text-transform:uppercase}
.works-media-heading>p{margin:0;color:#bdbab1;font-size:14px;line-height:1.7}
.works-media-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:190px;gap:12px}
.works-media-item{position:relative;grid-column:span 4;margin:0;overflow:hidden;background:#202320;border:1px solid #4b4c44}
.works-media-open{padding:0;color:#f3f0e8;text-align:left;font:inherit}
.works-media-open:focus-visible{outline:2px solid #fbbb00;outline-offset:3px}
.works-media-grid{grid-auto-flow:dense}
.works-media-item img,.works-media-item video{display:block;width:100%;height:100%;object-fit:cover;background:#111310}
.works-media-item img{transition:transform .55s cubic-bezier(.22,1,.36,1)}
.works-media-item:hover img{transform:scale(1.035)}
.gallery-modal{display:grid;gap:18px}
.gallery-modal img{display:block;width:100%;max-height:72svh;object-fit:contain;background:#111310}
.gallery-modal-copy{padding:0 8px 8px}
.gallery-modal-copy .eyebrow{margin-bottom:8px}
.gallery-modal-copy h2{margin:0!important;font-size:clamp(28px,4vw,46px)!important}
#service-dialog:has(.gallery-modal){width:min(1040px,calc(100vw - 32px));max-height:calc(100svh - 32px);padding:16px;overflow:auto}

@media(max-width:1100px){
  .featured-works{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .works-media-heading{grid-template-columns:1fr;gap:18px}
  .works-media-grid{grid-auto-rows:170px}
}
@media(max-width:700px){
  .featured-works{grid-template-columns:1fr}
  .work-card{padding:20px}
  .work-detail{grid-template-columns:repeat(2,minmax(0,1fr))}
  .works-media-grid{grid-template-columns:1fr;grid-auto-rows:auto}
  .works-media-item{grid-column:1;grid-row:auto;height:240px}
  }
@media(max-width:480px){
  #service-dialog:has(.work-modal-layout){width:calc(100vw - 24px);max-height:calc(100svh - 24px);padding:22px 18px}
  .work-detail{grid-template-columns:1fr}
  .work-detail div{min-height:0}
  .work-card{padding:18px}
  .work-card-head{margin-bottom:12px}
  .works-media-item,.works-media-item--video{height:220px}
}

/* Visor de fotos: se abre al hacer click en la galeria. */
.foto-visor{width:100vw;max-width:100vw;height:100svh;max-height:100svh;margin:0;padding:0;border:0;background:#0b0c0b;color:#f3f0e8;overflow:hidden}
.foto-visor::backdrop{background:#07080799;backdrop-filter:blur(3px)}
.foto-visor__img{position:absolute;inset:0;display:block;width:calc(100% - 140px);max-height:calc(100svh - 120px);margin:auto;object-fit:contain}
.foto-visor__nav{position:absolute;top:50%;z-index:2;display:grid;width:52px;height:52px;transform:translateY(-50%);place-items:center;border:1px solid #ffffff2e;border-radius:50%;background:#15171599;color:#f3f0e8;font-size:30px;line-height:1;cursor:pointer;transition:background .2s,border-color .2s}
.foto-visor__nav--prev{left:18px}
.foto-visor__nav--next{right:18px}
.foto-visor__nav:hover,.foto-visor__nav:focus-visible{border-color:#fbbb00;background:#fbbb00;color:#151715}
.foto-visor__cerrar{position:absolute;top:18px;right:18px;z-index:3;width:44px;height:44px;border:1px solid #ffffff2e;border-radius:50%;background:#15171599;color:#f3f0e8;font-size:24px;line-height:1;cursor:pointer}
.foto-visor__cerrar:hover,.foto-visor__cerrar:focus-visible{border-color:#fbbb00;background:#fbbb00;color:#151715}
.foto-visor__contador{position:absolute;bottom:22px;left:0;right:0;z-index:2;margin:0;color:#c5c1b7;font-size:12px;letter-spacing:.08em;text-align:center}
.foto-visor__nav:focus-visible,.foto-visor__cerrar:focus-visible{outline:2px solid #fbbb00;outline-offset:3px}
@media(max-width:700px){
  .foto-visor__img{width:calc(100% - 24px);max-height:calc(100svh - 150px)}
  .foto-visor__nav{bottom:18px;top:auto;width:46px;height:46px;transform:none}
  .foto-visor__nav--prev{left:calc(50% - 64px)}
  .foto-visor__nav--next{right:calc(50% - 64px)}
  .foto-visor__contador{bottom:78px}
}
