/* Final desktop content, adapted exclusively to screens up to 820px. */
html,
html.snap-sections {
  scroll-snap-type: none !important;
  scroll-padding-top: 64px;
  scrollbar-gutter: auto;
}
body,
.artist-page-body {
  padding-top: 60px;
  padding-bottom: calc(86px + env(safe-area-inset-bottom));
  overflow-x: clip;
}
.site-header,
.artist-mobile-header,
.license-mobile-nav,
.mobile-menu {
  display: none !important;
}
.responsive-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 85;
  height: 60px;
  padding: 8px 16px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 0;
}
.responsive-header[hidden],
.responsive-navigation[hidden] {
  display: none;
}
.responsive-header > a {
  display: block;
  width: 88px;
  height: 35px;
}
.responsive-header img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.responsive-header button {
  width: 44px;
  height: 44px;
  margin-right: -12px;
  border: 0;
  background: transparent;
  padding: 0;
  color: var(--ink);
}
.responsive-header button span {
  display: block;
  width: 14px;
  height: 1px;
  background: currentColor;
  margin: 6px auto;
  transition: transform 0.2s;
}
.responsive-header button[aria-expanded="true"] span:first-child {
  transform: translateY(3.5px) rotate(45deg);
}
.responsive-header button[aria-expanded="true"] span:last-child {
  transform: translateY(-3.5px) rotate(-45deg);
}
.responsive-navigation {
  position: fixed;
  inset: 0;
  z-index: 84;
  background: var(--license-glass-color);
  -webkit-backdrop-filter: var(--license-glass-filter);
  backdrop-filter: var(--license-glass-filter);
  padding: 60px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: safe center;
  overflow: auto;
}
.responsive-navigation a {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  text-align: center;
  min-height: 48px;
  padding: 12px 0;
  border: 0;
  font-size: 13px;
  font-weight: 300;
}
.responsive-navigation a[aria-current="page"] {
  font-weight: 700;
}
.responsive-menu-open {
  overflow: hidden;
}
.responsive-menu-open .responsive-header {
  background: transparent;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

a:focus-visible,
button:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 4px;
}

input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: none;
  border-bottom-color: var(--yellow) !important;
}

/* Reuse the five finished pairs, instead of the superseded mobile Home. */
.mobile-home:not(.archive-page-mobile) {
  display: none;
}
.desktop-home:not(.archive-page-desktop) {
  display: block;
  position: relative;
  background: #fff;
  padding: 0 24px;
  max-width: 100%;
  overflow: visible;
}
.desktop-home > .d-nav {
  display: none;
}
.d-license-card {
  position: fixed;
  top: 42px;
  right: 8px;
  z-index: 86;
  width: calc(86% - 27.52px);
  max-width: 320px;
  background: var(--yellow);
  padding: 28px 26px;
  margin: 0;
  transform-origin: top right;
  transform: none;
  opacity: 1;
  visibility: visible;
  transition:
    transform 0.3s ease,
    opacity 0.22s ease,
    visibility 0s;
}
.d-license-card {
  background: var(--license-glass-color);
  -webkit-backdrop-filter: var(--license-glass-filter);
  backdrop-filter: var(--license-glass-filter);
  border: 0;
  outline: 0;
  border-radius: 0;
  box-shadow: none;
}
.responsive-menu-open .d-license-card {
  z-index: auto;
}
body.footer-open .d-license-card {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: none;
}
.d-license-card.closed,
.d-license-card.mobile-folded,
.d-license-card.nav-folded {
  transform: translate(-18px, -12px) scale(0.04);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    transform 0.3s ease,
    opacity 0.22s ease,
    visibility 0s linear 0.3s;
}
.d-license-card h2,
.d-license-question {
  font-size: 13px;
  line-height: 1.35;
}
.d-license-card h2 {
  padding-right: 40px;
}
.d-license-question {
  margin: 6px 0 14px;
}
.d-license-card ul {
  margin: 0;
  padding-left: 0;
  font-size: 13px;
  line-height: 1.4;
}
.d-license-close {
  position: absolute;
  right: -4px;
  top: -4px;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  font-size: 0;
}
.d-license-close::before,
.d-license-close::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 14px;
  height: 1px;
  background: currentColor;
  transform: translate(-50%, -50%) rotate(45deg);
}
.d-license-close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}
.d-works,
.d-carousel-track,
.d-page {
  display: block;
  width: 100%;
  height: auto;
  min-height: 0;
  position: static;
  transform: none !important;
}
.d-intro {
  height: auto;
  padding: 0 0 24px;
}
.desktop-home > .d-intro {
  padding: 32px 0 24px;
}
.d-intro-placeholder {
  display: none;
}
.d-home-intro h1 {
  font-size: 13px;
  line-height: 1.3;
  margin: 0 0 20px;
}
.d-home-intro p {
  font-size: 13px;
  line-height: 1.5;
  font-weight: 300;
}
.d-label {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  width: calc(100% + 48px);
  margin: 0 -24px;
  height: auto;
  padding: 24px 8px 16px;
  font-size: 13px;
  line-height: 1.35;
}
.d-label > span:first-child {
  text-align: left;
  min-width: 0;
}
.d-label > span:last-child {
  text-align: right;
  flex-shrink: 0;
}
.d-pair {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
  width: calc(100% + 48px);
  margin: 0 -24px 24px;
}
.d-pair figure {
  position: relative;
  margin: 0;
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: start;
}
.d-pair img {
  grid-area: 1 / 1;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 5;
  object-fit: cover;
}
.d-pair figcaption {
  grid-area: 2 / 1;
  font-size: 13px;
  line-height: 1.4;
  font-weight: 300;
  padding: 12px 8px 0;
}
.d-pair figure > a {
  grid-area: 1 / 1;
  align-self: end;
  justify-self: end;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 6px 16px;
  margin: 8px;
  border: 0;
  background: #fff;
  font-size: 13px;
  text-transform: uppercase;
}
/* Archive: natural scrolling and a touch-friendly year selector. */
.archive-page-mobile {
  padding-top: 0;
}
.archive-page-mobile .archive {
  position: static;
  isolation: auto;
  scroll-snap-align: none;
}
.archive-page-mobile .contact {
  display: none;
}
.archive-page-mobile .archive-heading {
  padding: 12px 8px;
}
.archive-page-mobile .archive-heading .outline-link {
  display: none;
}
.archive-heading h2 {
  font-size: 13px;
}
.archive-heading p {
  font-size: 13px;
  line-height: 1.5;
  margin-top: 16px;
}
.archive-heading p strong {
  font-weight: 700;
  color: var(--ink);
}
.outline-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font:
    12px/1.3 "Albert Sans",
    sans-serif;
  text-transform: uppercase;
  border-color: var(--ink);
}
.years {
  position: sticky;
  top: 60px;
  z-index: 8;
  background: #fff;
  padding: 12px 8px 16px;
  gap: 12px;
  border-bottom: 0;
  overscroll-behavior-x: contain;
}
.year {
  min-width: 44px;
  min-height: 44px;
  padding: 8px 0;
  text-align: left;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  font-size: 13px;
  font-weight: 300;
  flex: none;
}
.year.active {
  background: transparent;
  color: var(--ink);
  font-weight: 700;
}
.archive-content {
  padding: 24px 16px 40px;
}
.gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.art {
  margin: 0;
  min-width: 0;
}
.art img {
  height: auto;
  aspect-ratio: 4/5;
  object-fit: cover;
}
.art small {
  display: none;
}
.locked {
  max-height: 650px;
  overflow: hidden;
}
.lock-message {
  padding: 16px;
}
.lock-message a {
  display: flex;
  align-items: center;
  margin: 0;
  min-height: 44px;
  padding: 0 16px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: var(--ink);
  font:
    500 12px/1.3 "Albert Sans",
    sans-serif;
  text-decoration: none;
  text-transform: none;
}
.lock-message a i {
  flex: 0 0 8px;
  width: 8px;
  height: 8px;
  margin-right: 9px;
  border-radius: 50%;
  background: #20bd59;
}
/* Artist and licensing: the same imagery, hierarchy and yellow panels. */
.artist-page {
  padding: 0;
}
.artist-hero {
  margin: 0 16px;
  height: auto;
}
.artist-hero img {
  height: auto;
  aspect-ratio: 4/3;
  object-fit: cover;
}
.artist-introduction {
  padding: 32px 16px;
  gap: 20px;
}
.artist-introduction p,
.artist-copy-pair p {
  font-size: 13px;
  line-height: 1.5;
}
.artist-image-pair {
  gap: 16px;
}
.artist-image-pair--middle figure,
.artist-image-pair--bottom figure {
  height: auto;
  max-height: none;
}
.artist-image-pair img {
  height: auto;
  object-fit: contain;
}
.artist-image-pair--bottom {
  padding-bottom: 32px;
}
.license-process {
  padding: 32px 16px 0;
}
.license-process-intro > p,
.license-steps p {
  font-size: 13px;
  line-height: 1.5;
}
.license-steps {
  padding: 8px 20px;
  min-height: 0;
}
.license-steps h2 {
  font-size: 13px;
  margin: 16px 0;
}
.license-steps article {
  padding: 28px 0;
}
.license-orientation {
  padding: 28px 0;
  font-size: 13px;
  line-height: 1.5;
}
.license-orientation br {
  display: none;
}
/* Fixed banner and readable, uncropped forms. */
.footer-banner {
  position: fixed;
  left: 8px;
  right: 8px;
  bottom: calc(8px + env(safe-area-inset-bottom));
  z-index: 70;
  width: calc(100% - 16px);
  min-height: 50px;
  height: auto;
  padding: 6px 16px;
  border: 0;
  box-shadow: 0 0 0 8px #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  text-align: left;
  font-family: "Albert Sans", sans-serif;
  cursor: pointer;
}
.footer-banner > span:first-child {
  font-size: 0;
  line-height: 0;
  white-space: normal;
  overflow: visible;
}
.footer-banner strong {
  font-size: 13px;
  line-height: 1.35;
  font-weight: 700;
}
.footer-banner-meta {
  display: none;
}
.footer-banner img {
  width: 12px;
  height: 20px;
  flex: none;
  object-fit: contain;
  transition: transform 0.25s;
}
.footer-banner.is-open {
  background: var(--yellow-glass);
  color: var(--ink);
  -webkit-backdrop-filter: var(--yellow-glass-filter);
  backdrop-filter: var(--yellow-glass-filter);
}
.footer-banner.is-open img {
  transform: rotate(180deg);
  filter: none;
}
.contact-footer {
  max-width: 100%;
  scroll-margin-top: 60px;
}
.contact-footer-form {
  padding: 28px 16px 32px;
}
.contact-footer-heading {
  width: 100%;
}
.contact-footer .contact-footer-heading p,
.contact-footer .contact-footer-form address {
  font-size: 13px !important;
  line-height: 1.5 !important;
  overflow-wrap: anywhere;
}
.contact-footer .contact-footer-form address {
  position: static;
  margin-top: 24px;
}
.contact-footer-form address a {
  display: inline;
  padding: 0;
}
.contact-footer-form form {
  position: static;
  margin-top: 28px;
}
.contact-footer .contact-footer-form label {
  margin-top: 20px;
  font-size: 13px !important;
  line-height: 1.5 !important;
}
.contact-footer .contact-footer-form input,
.contact-footer .contact-footer-form select,
.contact-footer .contact-footer-form textarea {
  width: 100%;
  min-height: 44px;
  height: auto;
  font-size: 13px !important;
  line-height: 1.4 !important;
  padding: 10px 0;
  background: transparent;
}
.contact-footer .contact-footer-form textarea {
  min-height: 88px;
  resize: vertical;
}
.contact-footer .contact-footer-form button {
  width: 100%;
  min-height: 48px;
  margin-top: 24px;
}
.contact-footer-visual {
  height: auto;
  min-height: 460px;
  flex: none;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 64px;
  padding: 32px 16px 24px;
}

.contact-footer-visual > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.contact-footer-visual::after {
  inset: 0;
  background: linear-gradient(
    rgba(0, 0, 0, 0.45),
    transparent 45%,
    rgba(0, 0, 0, 0.65)
  );
}
.contact-footer-visual nav {
  position: relative;
  top: auto;
  left: auto;
  right: auto;
  bottom: auto;
  gap: 20px;
  flex-wrap: wrap;
}
.contact-footer-visual nav a {
  display: flex;
  align-items: flex-start;
  min-height: 40px;
  font-size: 13px;
}
.contact-footer-place {
  padding: 20px 16px 8px;
}
.contact-footer-year {
  position: static;
  padding: 0 16px 8px;
}
.responsive-footer-credit {
  display: block;
  padding: 8px 16px 24px;
  font-size: 13px;
  line-height: 1.5;
}

.responsive-footer-metadata {
  position: relative;
  z-index: 2;
  display: grid;
  gap: 8px;
  margin-top: 24px;
  color: #fff;
}
.responsive-footer-metadata .contact-footer-place,
.responsive-footer-metadata .contact-footer-year,
.responsive-footer-metadata .responsive-footer-credit {
  position: static;
  padding: 0;
  color: inherit;
}
.responsive-footer-metadata .responsive-footer-credit {
  margin-top: 8px;
}
.home-global-footer.contact-footer {
  display: flex;
  position: fixed;
  inset: 60px 0 calc(66px + env(safe-area-inset-bottom));
  height: auto;
  min-height: 0;
  z-index: 68;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: #fff;
  transform: translateY(calc(100% + 66px + env(safe-area-inset-bottom)));
  visibility: hidden;
  pointer-events: none;
  transition:
    transform 0.5s cubic-bezier(0.22, 0.75, 0.18, 1),
    visibility 0s linear 0.5s;
}
.home-global-footer.contact-footer.is-open {
  transform: translateY(0);
  visibility: visible;
  pointer-events: auto;
  transition:
    transform 0.5s cubic-bezier(0.22, 0.75, 0.18, 1),
    visibility 0s;
}
.footer-flow-page .expandable-footer.contact-footer {
  display: none;
  height: auto !important;
  max-height: none;
  transition: none;
}
.footer-flow-page .expandable-footer.contact-footer.is-open {
  display: flex;
  max-height: none;
  opacity: 1;
  visibility: visible !important;
  overflow: visible !important;
  animation: mobile-footer-rise 0.5s cubic-bezier(0.22, 0.75, 0.18, 1);
}
@keyframes mobile-footer-rise {
  from {
    translate: 0 64px;
    opacity: 0;
  }
  to {
    translate: 0 0;
    opacity: 1;
  }
}
body.footer-open {
  overflow: hidden;
}
.legal-modal__body p {
  font-size: 13px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
@media (min-width: 600px) {
  .d-pair {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }
  .gallery {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .artist-image-pair {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    transition: none !important;
    animation: none !important;
  }

  
  
}

/* Misma escala que la navegación y los botones de escritorio. */
.responsive-navigation a,.d-label,.d-pair figure > a,.outline-link{font-size:12px}

/* Ritmo del formulario: margen lateral 8 px y separación 12 px. */
.contact-footer .contact-footer-form { padding:24px 8px 8px; }
.contact-footer .contact-footer-form form { margin-top:12px; }
.contact-footer .contact-footer-form label { margin-top:12px; }
.contact-footer .contact-footer-form .custom-select-trigger {
  height:44px!important;
  min-height:44px!important;
  padding:10px 0!important;
}
.contact-footer .contact-footer-form button[type="submit"] {
  margin-top:12px;
  min-height:48px;
}
.contact-footer .contact-footer-form .consent-field { gap:12px; }

/* El formulario llena el área visible antes de dar paso a la fotografía. */
.contact-footer .contact-footer-form{
  min-height:calc(100dvh - 126px - env(safe-area-inset-bottom));
  flex:0 0 auto;
  display:flex;
  flex-direction:column;
}
.contact-footer .contact-footer-form form{
  flex:1;
  display:flex;
  flex-direction:column;
}
.contact-footer .contact-footer-form .consent-field{margin-bottom:32px}
.contact-footer .contact-footer-form button[type="submit"]{
  margin-top:auto;
  flex-shrink:0;
}

.responsive-header .responsive-nav-mark{width:72px;height:24px;object-fit:contain;margin-left:auto;margin-right:0;flex-shrink:0}

.archive-page-mobile .art{
  margin:0;
  padding:0;
  position:relative;
  width:100%;
  height:auto;
  aspect-ratio:4 / 5;
  overflow:hidden;
  align-self:start;
}
.archive-page-mobile .art img{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  aspect-ratio:auto;
  object-fit:cover;
}
.archive-page-mobile .archive-content:not(.locked) .art img{
  touch-action:none;
  user-select:none;
  -webkit-user-drag:none;
  -webkit-touch-callout:none;
}
.archive-page-mobile .archive-content{padding-left:8px;padding-right:8px}
.archive-page-mobile .gallery{gap:8px 8px;margin:0;padding:0;justify-items:stretch}
.archive-page-mobile .archive-content:not(.locked) .gallery .art img{object-fit:cover}

/* Recorrido nativo continuo de la muestra y los años bloqueados. */
.archive-page-mobile .archive-continuous{padding-top:24px}
.archive-page-mobile .archive-year-section{position:relative;margin:0 0 8px}
.archive-page-mobile .archive-year-section.locked{
  height:auto;min-height:0;max-height:none;overflow:visible;
}
.archive-page-mobile .archive-year-section.locked .lock-message{pointer-events:none}
.archive-page-mobile .archive-year-section.locked .lock-message a{pointer-events:auto}
.archive-page-mobile .archive-year-section:not(.locked) .art img{touch-action:pan-y pinch-zoom!important}
.archive-page-mobile .mobile-archive-access{position:fixed;inset:auto 8px auto;transform:translateY(-50%);z-index:9;padding:0;pointer-events:none}
.archive-page-mobile .mobile-archive-access a{pointer-events:auto}
.archive-page-mobile .mobile-archive-access[hidden],body.footer-open .mobile-archive-access{display:none}

/* Mantener la misma alineación lateral también en móvil. */
body .artist-hero{margin-inline:var(--page-gutter)}
body .artist-introduction,body .artist-image-pair,body .artist-copy-pair,
body .license-process,body .license-request{padding-inline:var(--page-gutter)}
.desktop-home .d-home-intro{margin-inline:-16px}
.desktop-home .d-pair{width:calc(100% + 32px);margin-inline:-16px}
/* La tira de años mantiene el mismo aire respecto al texto y las obras. */
.archive-page-mobile .years{padding-block:12px}
.archive-page-mobile .archive-content{padding-top:12px}
.footer-banner{gap:8px}
.footer-banner .mobile-banner-mark{
  display:block;width:56px;height:24px;flex:0 0 56px;margin-left:auto;
  background:url('../media/camino.png') center / contain no-repeat;
}
/* Foto final a la altura del área visible entre cabecera y banner. */
.home-global-footer.contact-footer .contact-footer-visual{
  height:auto;
  min-height:calc(100dvh - 126px - env(safe-area-inset-bottom));
  flex:0 0 auto;
  padding:12px 8px;
  gap:24px;
  justify-content:space-between;
}
.home-global-footer.contact-footer .contact-footer-visual .responsive-footer-metadata{
  margin-top:auto;
}
body .artist-image-pair--bottom{padding-bottom:8px}

body .contact-footer .contact-footer-form{padding-inline:var(--page-gutter)}
body .contact-footer .contact-footer-visual{margin-inline:var(--page-gutter)}
/* Fotografía del estudio más amplia en móvil. */
.license-studio-photo img{
  width:100%;height:auto;aspect-ratio:3 / 4;
  object-fit:cover;object-position:65% center;
}
/* El Archivo desplaza las obras dentro de su panel, no la introducción. */
.archive-page-mobile{
  position:fixed;inset:60px 0 calc(66px + env(safe-area-inset-bottom));
  height:auto;overflow:hidden;
}
.archive-page-mobile .archive{height:100%;min-height:0;display:flex;flex-direction:column}
.archive-page-mobile .archive-heading,.archive-page-mobile .years{flex:0 0 auto}
.archive-page-mobile .years{position:relative;top:auto}
.archive-page-mobile .archive-content{
  flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;
  overscroll-behavior:contain;scroll-behavior:auto;
}
/* Keep each series title visible while its photos pass underneath. */
.desktop-home .d-carousel-slide > .d-label {
  position: sticky;
  top: 60px;
  z-index: 3;
  background: #fff;
  box-shadow: 0 -2px 0 #fff;
}

/* Introducción visible antes de las obras también en móvil. */
.desktop-home .d-page-first > .d-intro {
  display: block;
  padding: 32px 0 24px;
}

/* Prueba móvil: el nombre del artista permanece sobre los títulos de las series. */
.desktop-home .d-page-first > .d-intro {
  padding-top: 65px;
}
.desktop-home .d-home-intro h1 {
  position: fixed;
  top: 60px;
  left: 0;
  right: 0;
  height: 45px;
  margin: 0;
  padding: 14px 8px;
  z-index: 4;
  background: #fff;
  box-shadow: 0 -2px 0 #fff;
}
.desktop-home .d-carousel-slide > .d-label {
  top: 105px;
  /* Mantener el texto en una capa estable durante el scroll automático. */
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  will-change: transform;
}
/* Misma escala para los tres títulos de la cabecera móvil. */
body .desktop-home .d-home-intro h1,
body .desktop-home .d-carousel-slide > .d-label,
body .desktop-home .d-carousel-slide > .d-label > span {
  font-size: 13px !important;
  line-height: 1.35;
  font-weight: 700;
}

/* La cabecera fija no pertenece al contenido que se desplaza. */
body.home-fixed-series-ready .desktop-home .d-carousel-slide > .d-label {
  position: static;
  transform: none;
  will-change: auto;
}
body.home-fixed-series-ready .d-label.series-in-fixed-bar { visibility: hidden; }
.mobile-fixed-series {
  position: fixed;
  top: 105px;
  left: 0;
  right: 0;
  z-index: 3;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 0 8px 12px;
  background: #fff;
  box-shadow: 0 -2px 0 #fff;
  font: 700 13px/1.35 'Albert Sans', sans-serif;
}
.mobile-fixed-series[hidden] { display: none; }
.mobile-fixed-series > span:first-child { min-width: 0; text-align: left; }
.mobile-fixed-series > span:last-child { flex-shrink: 0; text-align: right; }
/* Reducir la separación entre el artista y el título de la serie. */
body .desktop-home .d-carousel-slide > .d-label {
  padding: 0 8px 12px;
}

/* Dos trazos idénticos, con posiciones explícitas dentro del botón. */
.responsive-header button { position: relative; }
.responsive-header button span {
  position: absolute;
  left: 15px;
  top: 18px;
  width: 14px;
  height: 1px;
  margin: 0;
  padding: 0;
  border: 0;
  opacity: 1;
  background: currentColor;
  transform-origin: center;
}
.responsive-header button span:last-child { top: 25px; }
/* Los nombres largos se reparten en líneas sin desbordar la cabecera. */
.desktop-home .d-label > span,
.desktop-home .d-label > span:last-child,
.mobile-fixed-series > span,
.mobile-fixed-series > span:last-child {
  flex: 1 1 0;
  min-width: 0;
  overflow-wrap: break-word;
}

/* Flecha de vuelta a la introducción entre las dos filas fijas. */
.mobile-fixed-series { top: 137px; }
.mobile-back-to-intro {
  position: fixed;
  top: 105px;
  left: 0;
  width: 100%;
  height: 32px;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0 8px;
  border: 0;
  background: #fff;
  box-shadow: 0 -2px 0 #fff;
  cursor: pointer;
}
.mobile-back-to-intro[hidden] { display: none; }
.mobile-back-to-intro img {
  width: 11px;
  height: 18px;
  object-fit: contain;
  transform: rotate(180deg);
}
/* Compensar el margen inferior del título superior a ambos lados de la flecha. */
.mobile-fixed-series { padding-top: 13px; }

/* Continuidad entre años: filas completas y el mismo espacio entre todas las obras. */
.archive-page-mobile .archive-year-section.locked .gallery {
  filter: blur(10px);
  opacity: 1;
}
.archive-page-mobile .archive-year-section.locked .art img {
  filter: blur(22px) saturate(1.04);
  transform: scale(1.14);
  opacity: 1;
}
body.license-page .home-global-footer.contact-footer { position: relative; inset: auto; transform: none; visibility: visible; pointer-events: auto; overflow: visible; height: auto; }

/* La última fotografía continúa detrás del banner fijo en estas dos páginas. */
body.home-page,
body.artist-page-body {
  padding-bottom: 0;
}
body.artist-page-body .artist-image-pair--bottom {
  padding-bottom: 0;
}
body.home-page .d-pair-fifth {
  margin-bottom: 0;
}
/* Conservar el pie de foto legible antes de la última imagen. */
body.home-page .d-pair-fifth > figure:last-child figcaption {
  grid-area: 1 / 1;
  padding: 0 8px 12px;
}
body.home-page .d-pair-fifth > figure:last-child img {
  grid-area: 2 / 1;
}
/* Archivo móvil: las obras pasan bajo el cristal amarillo permanentemente. */
body.archive-page-body .archive-page-mobile {
  bottom: 0;
}
body.archive-page-body .footer-banner {
  background: var(--yellow-glass);
  -webkit-backdrop-filter: var(--yellow-glass-filter);
  backdrop-filter: var(--yellow-glass-filter);
  animation: none;
}
body.archive-page-body .footer-banner.footer-attention {
  outline: none;
}
/* Licencia no reserva espacio para un banner fijo. */
body.license-page { padding-bottom: env(safe-area-inset-bottom); }

/* En móvil se conserva una zona de fotografía nítida después de los pasos. */
body.license-page .license-process-scene {
  margin-bottom: 0;
}
body.license-page .license-process-scene .license-studio-photo {
  min-height: 85svh;
}
/* Foto móvil más alta, con el encuadre centrado en el artista. */
body.license-page .license-process-scene .license-studio-photo {
  min-height: 0;
}
body.license-page .license-process-scene .license-studio-photo img {
  opacity: 1;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: 65% center;
}
/* Alinear los títulos móviles con la introducción del artista (60 + 32px). */
:root { --mobile-title-offset: 32px; --mobile-title-bottom: 123px; }
body .artist-introduction h1,
body .desktop-home .d-home-intro h1,
body .license-process-intro h1 { line-height: 1.3; }
body .desktop-home .d-home-intro h1 {
  height: 63px;
  padding-top: var(--mobile-title-offset);
}
body .desktop-home .d-page-first > .d-intro { padding-top: 83px; }
body .mobile-back-to-intro { top: var(--mobile-title-bottom); }
body .mobile-fixed-series { top: calc(var(--mobile-title-bottom) + 32px); }
body.license-page .license-process-scene .license-steps {
  padding-top: var(--mobile-title-offset);
}
/* Años primero; explicación debajo con espacio propio antes de las imágenes. */
.archive-page-mobile .years {
  order: 0;
  padding-top: var(--mobile-title-offset);
  padding-bottom: 0;
}
.archive-page-mobile .year {
  display: flex;
  align-items: flex-start;
  padding-top: 0;
  line-height: 1.3;
}
.archive-page-mobile .archive-heading {
  order: 1;
  min-height: 0;
  padding: 8px 8px 12px;
  border: 0;
}
.archive-page-mobile .archive-heading p {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
}
.archive-page-mobile .archive-content { order: 2; }
/* Mismo tamaño antes y después de fijar la serie: evita saltos y cambios de línea. */
body .desktop-home .d-carousel-slide > .d-label,
body .mobile-fixed-series {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  gap: 12px;
  height: auto;
  padding: 13px 8px 12px;
  font: 700 13px/1.35 'Albert Sans', sans-serif;
}
body .mobile-fixed-series[hidden] { display: none; }