/* JAC editorial refinement. Loaded after the imported prototype styles.
   Scoped to existing archive, case and studio markup; no home/contact rules. */

/* The archive is a sequence of generous project spreads, not a card catalog. */
main:has(> .archive) > .page-intro,
main:has(> .studio-mosaic) > .editorial-intro {
  padding-top: clamp(155px, 15vw, 235px);
  padding-bottom: clamp(64px, 8vw, 130px);
  background: #0b0b0d;
  margin-bottom: 0;
  border-bottom: 0;
}
main:has(> .archive) > .page-intro h1,
main:has(> .studio-mosaic) > .editorial-intro h1 {
  max-width: 1320px;
  font-size: clamp(55px, 8.1vw, 138px);
  line-height: .99;
  letter-spacing: -.065em;
}
main:has(> .archive) > .page-intro h1 em,
main:has(> .studio-mosaic) > .editorial-intro h1 em { color: #ff8069; }
main:has(> .archive) > .page-intro .intro-copy,
main:has(> .studio-mosaic) > .editorial-intro .intro-copy {
  margin: 42px 0 0 50%;
  max-width: 560px;
  color: #b8b6b1;
  font-size: clamp(16px, 1.3vw, 20px);
  line-height: 1.7;
}
.archive { padding-top: 0; padding-bottom: clamp(80px, 10vw, 160px); }
.archive .filters { gap: 8px 28px; padding: 24px 0; border-top: 1px solid #343436; border-bottom: 1px solid #343436; }
.archive .filters button { min-height: 44px; padding: 10px 2px; border: 0; border-radius: 0; font-size: 14px; color: #aaa9a5; }
.archive .filters button[aria-pressed="true"] { background: transparent; color: #f3efe8; box-shadow: inset 0 -2px #ff8069; }
.archive .filters button:hover { color: #ffac99; }
.archive .filter-status { margin: 22px 0 46px; font-size: 12px; color: #a9a8a5; }
.archive .project-grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, .85fr); gap: 100px 7vw; align-items: start; }
.archive .project-card { min-width: 0; padding: 0; background: transparent; border: 0; border-radius: 0; }
.archive .project-card:nth-child(even) { padding-top: 130px; }
.archive .project-image,
.archive .project-card:nth-child(4n+1) .project-image { aspect-ratio: 1.1; border-radius: 0; }
.archive .project-card[data-category="Digital"] .project-image { aspect-ratio: 1.25; padding: clamp(16px, 2.6vw, 42px); background: #232127; }
.archive .project-card[data-category="Digital"] .project-image img { width: 100%; height: 100%; object-fit: contain; }
.archive .project-card[data-category="Moda"] .project-image { aspect-ratio: 4/5; }
.archive .project-card[data-category="Identidad"] .project-image { aspect-ratio: 4/5; background: #222; }
.archive .project-card[data-category="Identidad"] .project-image img { object-fit: contain; }
.archive .project-caption { display: block; margin-top: 24px; }
.archive .project-caption h3 { font-size: clamp(30px, 3.4vw, 53px); line-height: 1.1; }
.archive .project-caption > span { display: block; text-align: left; font-size: 12px; margin-top: 12px; color: #bcb9b4; }
.archive .project-line { margin-top: 7px; font-size: 14px; color: #969590; }
.archive .round-arrow { right: 18px; bottom: 18px; width: 52px; height: 52px; background: #f3efe8; color: #181817; }
.archive .image-label { top: 18px; left: 18px; background: #101113; border-radius: 0; padding: 8px 12px; }
.archive .provenance-note { margin-top: 80px; padding-top: 24px; border-top: 1px solid #343436; max-width: none; font-size: 13px; }
main:has(> .archive) > .demos { background: #e7e2d8; color: #20211f; padding-block: clamp(72px, 9vw, 140px); }
main:has(> .archive) > .demos :is(.eyebrow, .section-aside, .tag, .gallery-button > span) { color: #52554e; }
main:has(> .archive) > .demos h2 em { color: #6a6c64; }
main:has(> .archive) > .demos .demo-grid { gap: 6vw; }
main:has(> .archive) > .demos .demo-grid article:nth-child(2) { padding-top: 110px; }
main:has(> .archive) > .demos .demo-grid .gallery-button { aspect-ratio: auto; }
main:has(> .archive) > .demos .demo-grid img { aspect-ratio: 1.4; object-fit: cover; }

/* Case opening: a large name and compact provenance above the actual work. */
.case-intro { padding: clamp(140px, 13vw, 205px) var(--pad) 42px; }
.case-intro .back-link { margin-bottom: clamp(48px, 7vw, 105px); font-size: 12px; color: #c4c1ba; min-height: 32px; }
.case-title { grid-template-columns: minmax(0, 1.65fr) minmax(0, .65fr); gap: 5vw; align-items: end; }
.case-title > div { min-width: 0; }
.case-title .eyebrow { color: #ff9a85; font-size: 12px; }
.case-title h1 { font-size: clamp(62px, 9.2vw, 155px); line-height: .96; letter-spacing: -.067em; margin-top: 24px; overflow-wrap: normal; }
.case-title > p { font-size: clamp(16px, 1.3vw, 20px); line-height: 1.6; color: #c4c1ba; max-width: 420px; padding-bottom: 6px; }
.case-meta { grid-template-columns: minmax(0, 1.65fr) minmax(0, .65fr); gap: 5vw; margin-top: 55px; padding-top: 22px; border-color: #3b3b3b; font-size: 12px; color: #aaa9a4; }
.case-meta > span { color: #e0dbd3; }
.case-cover { margin: 0; height: clamp(400px, 62vw, 850px); max-height: none; background: #1b1d20; padding: clamp(20px, 4vw, 65px) var(--pad); }
.case-cover img { width: 100%; height: 100%; object-fit: contain; }
.case-story { display: grid; grid-template-columns: minmax(0, .65fr) minmax(0, 1.65fr); gap: 6vw; padding-block: clamp(80px, 10vw, 160px); background: #e7e2d8; color: #20211f; }
.case-story > .eyebrow { color: #62645d; font-size: 12px; padding-top: 9px; }
.case-story > div { min-width: 0; }
.case-story h2 { max-width: 870px; font-size: clamp(42px, 5.5vw, 88px); line-height: 1.06; }
.case-story .split-copy { gap: 40px; margin-top: 50px; }
.case-story .split-copy h3 { font-size: 17px; letter-spacing: -.02em; margin-bottom: 16px; }
.case-story .split-copy p { color: #50544c; font-size: 16px; line-height: 1.8; }
.case-story .deliverables { display: block; margin-top: 45px; border-top: 1px solid #b8baae; }
.case-story .deliverables li { border: 0; border-bottom: 1px solid #b8baae; border-radius: 0; padding: 16px 0; font-size: 13px; color: #3e443a; }
.case-story .deliverables li::before { content: "↗"; margin-right: 18px; color: #5c6057; }
.case-gallery { padding-block: clamp(80px, 10vw, 150px); }
.case-gallery .section-heading { align-items: end; margin-bottom: 70px; }
.case-gallery .section-heading h2 { font-size: clamp(45px, 6vw, 95px); }
.case-gallery .section-heading h2 em { color: #ff8069; }
.case-gallery .section-heading > p { color: #b7b4ae; font-size: 14px; max-width: 260px; }
.case-gallery .gallery-grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, .85fr); align-items: start; gap: 70px 6vw; }
.case-gallery .gallery-grid:not(.portrait-grid) .gallery-button:nth-child(even) { margin-top: 100px; }
.case-gallery .gallery-grid:not(.portrait-grid) .gallery-button:last-child:nth-child(odd):not(:first-child) { grid-column: 1/-1; width: 78%; justify-self: center; }
.case-gallery .gallery-button { overflow: visible; }
.case-gallery .gallery-button img { height: auto; object-fit: contain; background: #191a1c; }
.case-gallery .gallery-button > span { width: 100%; padding: 18px 0 0; margin-top: 0; color: #bdb9b2; font-size: 12px; line-height: 1.6; }
.case-gallery .portrait-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 24px; }
.case-films { padding-block: clamp(75px, 9vw, 135px); background: #151719; }
.case-films > .eyebrow { color: #ff9a85; margin-bottom: 45px; }
.case-films .video-grid { gap: 28px; }
.case-films .film figcaption { font-size: 12px; margin-top: 19px; color: #c2beb7; }
.case-films .video-grid.single { max-width: 1120px; }
.case-films .video-grid.single .vertical { max-width: 450px; width: 100%; }
main:has(> .case-intro) > .credits { display: grid; grid-template-columns: minmax(0, .65fr) minmax(0, 1.65fr); gap: 18px 6vw; padding-block: 45px 65px; border-color: #343436; }
main:has(> .case-intro) > .credits > .eyebrow { grid-row: 1/3; color: #a5a39f; }
main:has(> .case-intro) > .credits > p:nth-child(2) { margin: 0; color: #c0bcb5; }
main:has(> .case-intro) > .credits > a { font-size: 12px; line-height: 1.7; text-decoration-color: #777; }
.case-consultation { padding-block: clamp(70px, 8vw, 120px); border-top: 1px solid #343436; background: #111214; }
.case-consultation h2 { font-size: clamp(45px, 5.6vw, 90px); line-height: 1.04; }
.case-consultation > .eyebrow { color: #ff9a85; }
.case-consultation .pill { border: 1px solid #ff8069; background: #ff8069; color: #191919; margin-top: 12px; min-height: 54px; }
.case-consultation .pill:hover { background: #f3efe8; border-color: #f3efe8; }
main:has(> .case-intro) > .next-case { background: #e7e2d8; color: #20211f; padding-block: clamp(45px, 6vw, 90px); border: 0; }
main:has(> .case-intro) > .next-case h2 { font-size: clamp(36px, 6.3vw, 100px); }
main:has(> .case-intro) > .next-case > span:last-child { color: #a53626; transition: transform .25s ease; }
main:has(> .case-intro) > .next-case:hover > span:last-child { transform: translate(6px, -6px); }

/* Studio: one visual field, a warm statement, then two clear disciplines. */
.studio-mosaic { grid-template-columns: minmax(0, 1.35fr) minmax(0, .72fr) minmax(0, .9fr); align-items: start; gap: 24px; padding-bottom: 110px; }
.studio-mosaic a { display: block; }
.studio-mosaic a:nth-child(2) { margin-top: 105px; }
.studio-mosaic a:nth-child(3) { margin-top: 45px; }
.studio-mosaic img { height: clamp(310px, 31vw, 500px); object-position: center; }
.studio-mosaic a:first-child img { height: clamp(310px, 36vw, 590px); padding: 24px; background: #242129; }
.studio-mosaic span { position: static; display: block; padding: 18px 0; font-size: 12px; color: #bbb7b0; background: transparent; }
.studio-story { padding-block: clamp(80px, 10vw, 160px); background: #e7e2d8; color: #20211f; grid-template-columns: minmax(0, 1.3fr) minmax(0, .8fr); gap: 45px 7vw; }
.studio-story > .eyebrow { color: #5d6357; }
.studio-story h2 { font-size: clamp(42px, 5.1vw, 82px); line-height: 1.06; }
.studio-story h2 em { color: #6a6c64; }
.studio-story > div { align-self: end; }
.studio-story > div p { color: #4e544b; font-size: 17px; line-height: 1.8; }
.studio-people { background: #0b0b0d; padding-block: clamp(80px, 10vw, 150px); gap: 9vw; }
.studio-people article { padding-top: 25px; border-color: #55534f; }
.studio-people .eyebrow { color: #ff9a85; }
.studio-people h2 { font-size: clamp(42px, 5vw, 78px); line-height: 1.05; margin: 50px 0 30px; }
.studio-people article > p:not(.eyebrow) { color: #b9b6b0; font-size: 17px; line-height: 1.75; max-width: 470px; }
.studio-people .text-link { margin-top: 36px; min-height: 44px; font-size: 13px; border-color: #65625d; }
.studio-experience { padding-block: clamp(70px, 9vw, 135px); border-top: 1px solid #383735; background: #141517; gap: 9vw; }
.studio-experience h2 { font-size: clamp(38px, 4.5vw, 70px); line-height: 1.08; margin-top: 30px; }
.studio-experience > div > p:not(.eyebrow) { color: #bbb8b1; font-size: 17px; line-height: 1.8; }
.studio-experience .studio-location { margin-top: 40px; padding-top: 25px; border-color: #4d4b48; }
main:has(> .studio-mosaic) > .working-agreement { padding-block: clamp(75px, 9vw, 140px); }
main:has(> .studio-mosaic) > .working-agreement h2 { font-size: clamp(42px, 5.2vw, 82px); }

:is(.archive, .case-intro, .case-gallery, .case-films, .case-consultation, .studio-mosaic, .studio-people) :is(a, button):focus-visible {
  outline: 2px solid #ff9a85;
  outline-offset: 6px;
}

@media (max-width: 1000px) {
  .case-title { grid-template-columns: 1fr; gap: 32px; }
  .case-title > p { max-width: 640px; }
  .case-meta { grid-template-columns: 1fr 1fr; }
  .case-story { grid-template-columns: 1fr; gap: 32px; }
  .case-story .split-copy { max-width: none; }
  .archive .project-grid { gap: 70px 5vw; }
  .archive .project-card:nth-child(even) { padding-top: 90px; }
  .studio-mosaic { gap: 18px; }
  .studio-mosaic img { height: 310px; }
  .studio-mosaic a:first-child img { height: 370px; padding: 14px; }
  .studio-story { grid-template-columns: 1fr; }
  .studio-story > div { max-width: 650px; margin-left: 20%; }
}

@media (max-width: 650px) {
  main:has(> .archive) > .page-intro,
  main:has(> .studio-mosaic) > .editorial-intro { padding-top: 145px; padding-bottom: 55px; }
  main:has(> .archive) > .page-intro h1,
  main:has(> .studio-mosaic) > .editorial-intro h1 { font-size: clamp(43px, 10.3vw, 66px); line-height: 1.05; }
  main:has(> .archive) > .page-intro .intro-copy,
  main:has(> .studio-mosaic) > .editorial-intro .intro-copy { margin: 30px 0 0; font-size: 16px; }
  .archive .filters { gap: 4px 20px; padding-block: 16px; }
  .archive .filters button { font-size: 13px; }
  .archive .filter-status { margin-bottom: 30px; }
  .archive .project-grid { grid-template-columns: minmax(0, 1fr); gap: 50px; }
  .archive .project-card:nth-child(even) { padding-top: 0; }
  .archive .project-caption h3 { font-size: 35px; }
  .archive .project-card[data-category="Moda"] .project-image,
  .archive .project-card[data-category="Identidad"] .project-image { aspect-ratio: 1; }
  .archive .project-card[data-category="Moda"] .project-image img { object-position: center 35%; }
  .archive .provenance-note { margin-top: 50px; }
  main:has(> .archive) > .demos .demo-grid { gap: 48px; }
  main:has(> .archive) > .demos .demo-grid article:nth-child(2) { padding-top: 0; }
  .case-intro { padding-top: 140px; padding-bottom: 30px; }
  .case-intro .back-link { margin-bottom: 42px; }
  .case-title h1 { font-size: clamp(50px, 13vw, 78px); overflow-wrap: anywhere; }
  .case-title > p { font-size: 16px; }
  .case-meta { grid-template-columns: 1fr; gap: 12px; margin-top: 35px; }
  .case-cover { height: 360px; min-height: 0; padding: 18px; }
  .case-story { padding-block: 65px; }
  .case-story h2 { font-size: 41px; }
  .case-story .split-copy { grid-template-columns: 1fr; margin-top: 35px; gap: 32px; }
  .case-gallery .section-heading { margin-bottom: 40px; }
  .case-gallery .section-heading h2 { font-size: 46px; }
  .case-gallery .gallery-grid { grid-template-columns: minmax(0, 1fr); gap: 38px; }
  .case-gallery .gallery-grid:not(.portrait-grid) .gallery-button:nth-child(even) { margin-top: 0; }
  .case-gallery .gallery-grid:not(.portrait-grid) .gallery-button:last-child:nth-child(odd):not(:first-child) { width: 100%; }
  .case-gallery .portrait-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 14px; }
  .case-gallery .gallery-button > span { font-size: 12px; padding-top: 12px; }
  .case-films .video-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 14px; }
  .case-films .video-grid.single { grid-template-columns: minmax(0, 1fr); }
  main:has(> .case-intro) > .credits { grid-template-columns: 1fr; gap: 18px; padding-block: 35px 55px; }
  main:has(> .case-intro) > .credits > .eyebrow { grid-row: auto; }
  .case-consultation { grid-template-columns: 1fr; gap: 25px; }
  .case-consultation h2 { grid-row: auto; font-size: 43px; }
  main:has(> .case-intro) > .next-case h2 { font-size: 38px; }
  .studio-mosaic { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 30px 16px; padding-bottom: 65px; }
  .studio-mosaic a:first-child { grid-column: 1/-1; }
  .studio-mosaic a:nth-child(2), .studio-mosaic a:nth-child(3) { margin-top: 0; }
  .studio-mosaic img { height: 220px; }
  .studio-mosaic a:first-child img { height: 290px; padding: 18px; }
  .studio-mosaic span { font-size: 12px; padding-top: 13px; line-height: 1.5; }
  .studio-story { gap: 30px; padding-block: 65px; }
  .studio-story h2 { font-size: 39px; }
  .studio-story > div { margin-left: 0; }
  .studio-story > div p { font-size: 16px; }
  .studio-people { grid-template-columns: 1fr; gap: 60px; padding-block: 65px; }
  .studio-people h2 { font-size: 46px; margin: 32px 0 25px; }
  .studio-people article > p:not(.eyebrow), .studio-experience > div > p:not(.eyebrow) { font-size: 16px; }
  .studio-experience { grid-template-columns: 1fr; gap: 35px; }
  .studio-experience h2 { font-size: 41px; }
  main:has(> .studio-mosaic) > .working-agreement h2 { font-size: 40px; }
}

@media (prefers-reduced-motion: reduce) {
  :is(.archive, .case-gallery, .studio-mosaic) img,
  .archive .round-arrow,
  main:has(> .case-intro) > .next-case > span:last-child { transition: none; transform: none; }
  :is(.archive, .case-gallery, .studio-mosaic) :is(a, button):hover img,
  :is(.archive, .case-gallery, .studio-mosaic) :is(a, button):focus-visible img,
  .archive .project-image:hover .round-arrow,
  main:has(> .case-intro) > .next-case:hover > span:last-child { transform: none; }
}
/* Sin cursivas en la web pública. */
em,i,cite{font-style:normal}
