/* ==========================================================================
   Studio FB USA - Ensaio (CPT `ensaio`) single template
   Scope: body.single-ensaio (WordPress body class for the post type).
   Tokens follow sites/studiofb-usa/home-v2/DESIGN.md (studiofb-ink-paper v2.0):
   Paper #F4F1EA / Ink #1A1A1A only; intermediate tones are alpha of Ink over
   Paper, never a third colour; hover INVERTS ground <-> text in 200ms; radius 0.
   Fonts: inherit the site tokens (--font-display Fraunces, --font-body Inter)
   with editorial fallbacks. Linked by the first divi/code module of the
   Theme Builder body layout 403768 (source: repo sites/studiofb-usa/ensaios-template/gallery.css).
   Also loaded by the archive template (403782): the session cards (.ensaio-card,
   .ensaio-grid) and the small SEO H2 (.ensaio-h2-small) live here so the single
   ("Other sessions") and /sessions/ share one file. Revision 1 (2026-09-07):
   tighter title band, gallery breaks out to --e-shell-wide with N-aware rows,
   wider Studio notes measure, hover inversion hardened, CTA = form + phone only.
   ========================================================================== */

.single-ensaio {
  --e-ink:   #1A1A1A;
  --e-paper: #F4F1EA;
  --e-ink-70: rgba(26, 26, 26, .66);        /* Ink muted: 5.3:1 on Paper */
  --e-ink-45: rgba(26, 26, 26, .66);
  --e-line:   rgba(26, 26, 26, .22);
  --e-paper-2: rgba(26, 26, 26, .045);       /* Paper deep: Ink 4.5% over Paper */
  --e-paper-muted: rgba(244, 241, 234, .68);
  --e-display: var(--font-display, "Fraunces", "Playfair Display", Georgia, serif);
  --e-body:    var(--font-body, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif);
  --e-gap: clamp(4px, .6vw, 10px);           /* thin gutters */
  --e-shell: 1520px;
  --e-shell-wide: 1720px;                   /* the gallery breaks the 1520 grid on wide screens */
  --e-measure: 80ch;                        /* Studio notes reading measure (in the notes' own font size) */
  --e-pad: clamp(1rem, 4vw, 3rem);
  --e-ease: cubic-bezier(.2, .7, .2, 1);
  --e-fast: 200ms;
  --e-slow: 900ms;
  background: var(--e-paper);
  color: var(--e-ink);
}

/* --- Divi wrappers: full-width Paper canvas for the body layout ---------- */
.single-ensaio #main-content,
.single-ensaio .et-l--body,
.single-ensaio .et-l--body .et_pb_section { background: var(--e-paper); }
.single-ensaio .et-l--body .et_pb_section { padding: 0; }
.single-ensaio .et-l--body .et_pb_row {
  width: 100%; max-width: var(--e-shell); margin-inline: auto;
  padding: 0 var(--e-pad);
}
.single-ensaio .et-l--body .et_pb_column { width: 100%; margin: 0; }
.single-ensaio .et-l--body .et_pb_column .et_pb_module, .single-ensaio .et-l--body .et_pb_module { margin-bottom: 0 !important; }   /* Divi: .et_pb_module{margin-bottom:2.75%} was adding ~39px under the title and under the content */
.single-ensaio .et_pb_code_inner, .single-ensaio .et_pb_code { line-height: inherit; }

/* The site nav is transparent with Paper text over a dark hero. There is no
   dark hero here, so force its "stuck" (solid) state from the first paint. */
.single-ensaio .nav {
  background: rgba(244, 241, 234, .94); backdrop-filter: blur(12px);
  border-bottom-color: var(--e-line);
}
.single-ensaio .nav .brand, .single-ensaio .nav .nav__links a,
.single-ensaio .nav .nav__toggle { color: var(--e-ink); }
.single-ensaio .nav .btn--solid { background: var(--e-ink); color: var(--e-paper); border-color: var(--e-ink); }
.single-ensaio .nav .btn--solid:hover, .single-ensaio .nav .btn--solid:focus-visible { background: var(--e-paper); color: var(--e-ink); }

/* --- Title band (divi/post-title) ---------------------------------------- */
.single-ensaio .et_pb_post_title {
  /* --v-nav-h = height of the fixed .sfb2-nav (4.25rem, global header 403774); 4.5rem = v1 nav fallback.
     Revision 1: the breathing room above the eyebrow is clamp(2rem, 4.5vw, 3.75rem) (was clamp(3rem, 8vw, 6rem) = ~165px at 1920). */
  padding: calc(var(--v-nav-h, 4.5rem) + clamp(2rem, 4.5vw, 3.75rem)) 0 clamp(1rem, 2vw, 1.5rem);
  text-align: left;
}
/* The global header prints a spacer .sfb2-head (height --v-nav-h) under the fixed nav, so the nav height
   must NOT be added again (that was the ~165px hole above the eyebrow). Guarded with :has so a header
   without the spacer keeps the full offset. */
.single-ensaio:has(.sfb2-head) .et_pb_post_title { padding-top: clamp(2rem, 4.5vw, 3.75rem); }
.single-ensaio .et_pb_post_title .et_pb_title_featured_container,
.single-ensaio .et_pb_post_title .et_pb_title_meta_container:empty { display: none; }
.single-ensaio .et_pb_post_title .et_pb_title_container {
  display: flex; flex-direction: column; gap: .9rem; align-items: flex-start;
  padding-bottom: clamp(1rem, 2.5vw, 1.75rem); border-bottom: 1px solid var(--e-ink);
}
.single-ensaio .et_pb_post_title .entry-title,
.single-ensaio h1.ensaio-title {
  font-family: var(--e-display); font-weight: 400; font-style: normal; font-variation-settings: "opsz" 144, "SOFT" 30, "WONK" 0;
  font-size: clamp(2.4rem, 6.2vw, 5.5rem); line-height: .98; letter-spacing: -.02em;
  margin: 0; color: var(--e-ink); max-width: 16ch; text-wrap: balance;
}
.ensaio-eyebrow, .ensaio-label {
  display: inline-block; font-family: var(--e-body); font-size: .6875rem; font-weight: 500;
  letter-spacing: .14em; text-transform: uppercase; color: var(--e-ink); margin: 0; font-feature-settings: "tnum" 1;
}
.ensaio-eyebrow { order: -1; }
.ensaio-eyebrow a { color: inherit; text-decoration: none; padding: .2em .35em; margin: -.2em -.35em; transition: background var(--e-fast) var(--e-ease), color var(--e-fast) var(--e-ease); }
.ensaio-eyebrow a:hover, .ensaio-eyebrow a:focus-visible { background: var(--e-ink); color: var(--e-paper); }   /* hover inverts */
.single-ensaio .et_pb_post_title .et_pb_title_meta_container { font-family: var(--e-body); font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase; color: var(--e-ink); order: -1; }
.single-ensaio .et_pb_post_title .et_pb_title_meta_container a { color: inherit; text-decoration: none; }


/* --- Gallery ------------------------------------------------------------- */
/* The gallery breaks out of the 1520px shell up to --e-shell-wide (1720px): on a 1920px screen the
   rows are 1720px wide instead of 1424px; below ~1620px it is exactly the row width. */
.ensaio-gallery-wrap {
  padding: clamp(.75rem, 1.5vw, 1.25rem) 0 clamp(2.5rem, 5vw, 4.5rem);
  width: min(100vw - 2 * var(--e-pad), var(--e-shell-wide));
  margin-inline: calc(50% - min(50vw - var(--e-pad), var(--e-shell-wide) / 2));
}
.ensaio-gallery__meta {
  display: flex; justify-content: space-between; align-items: baseline; gap: 1rem;
  margin: 0 0 clamp(.75rem, 1.5vw, 1.25rem); font-family: var(--e-body);
  font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase; color: var(--e-ink-70); font-feature-settings: "tnum" 1;
}
.ensaio-gallery__meta p { margin: 0; padding: 0; }
.ensaio-gallery__hint { color: var(--e-ink-70); letter-spacing: .02em; text-transform: none; font-size: .8rem; }

/* No-JS fallback: a responsive grid that keeps natural proportions. */
.single-ensaio ul.ensaio-gallery {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
  gap: var(--e-gap); margin: 0 !important; padding: 0 !important; list-style: none;   /* Divi gives post-content lists 1em left / 23px bottom padding: that was shrinking the row width */
}
/* JS-driven rows (lightbox.js justify): every image keeps its own ratio, rows share a height.
   is-centered = a short gallery (2-6 photos) whose row height hit the viewport cap. */
.single-ensaio ul.ensaio-gallery.is-justified { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--e-gap); }
.single-ensaio ul.ensaio-gallery.is-justified.is-centered { justify-content: center; }
.ensaio-gallery.is-justified .ensaio-gallery__item { flex: 0 0 auto; }

.ensaio-gallery__item { position: relative; margin: 0; padding: 0; overflow: hidden; background: var(--e-paper-2); list-style: none; }
.ensaio-gallery__link {
  display: block; position: relative; width: 100%; height: 100%;
  cursor: zoom-in; color: inherit; text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}
.ensaio-gallery__link:focus-visible { outline: 2px solid var(--e-ink); outline-offset: 3px; }
.ensaio-gallery__item img {
  display: block; width: 100%; height: 100%; object-fit: cover;
  transition: transform var(--e-slow) var(--e-ease), filter var(--e-fast) var(--e-ease);
}
.ensaio-gallery__link::after {                /* Ink veil on hover, subtle */
  content: ""; position: absolute; inset: 0; background: var(--e-ink); opacity: 0;
  transition: opacity var(--e-fast) var(--e-ease); pointer-events: none;
}
@media (hover: hover) {
  .ensaio-gallery__link:hover::after, .ensaio-gallery__link:focus-visible::after { opacity: .14; }
  .ensaio-gallery__link:hover img, .ensaio-gallery__link:focus-visible img { transform: scale(1.025); }
}
/* Captions/titles from the media library are file codes: never visible. */
.single-ensaio .ensaio-gallery figcaption,
.single-ensaio .wp-block-gallery figcaption,
.single-ensaio .wp-block-image figcaption,
.single-ensaio .blocks-gallery-caption,
.single-ensaio .wp-element-caption { display: none !important; }

/* Reveal on scroll (only once JS is present; otherwise everything is visible). */
html.js .ensaio-gallery__item { opacity: 0; transform: translateY(18px); transition: opacity var(--e-slow) var(--e-ease), transform var(--e-slow) var(--e-ease); }
html.js .ensaio-gallery__item.is-in { opacity: 1; transform: none; }

/* --- Small SEO headings (owner rule: H2 visually small, eyebrow-like; display copy goes in <p>) --- */
.ensaio-h2-small {
  font-family: var(--e-body); font-size: .75rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase;
  line-height: 1.4; color: var(--e-ink); margin: 0; padding: 0; font-feature-settings: "tnum" 1;
}

/* --- Session cards (shared by "Other sessions" on the single and the /sessions/ archive) --- */
.ensaio-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
  gap: clamp(1.5rem, 3vw, 2.5rem) clamp(.75rem, 1.5vw, 1.25rem); list-style: none; margin: 0 !important; padding: 0 !important;
}
.ensaio-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 760px) { .ensaio-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem .75rem; } }
.ensaio-card { margin: 0; padding: 0; list-style: none; }
.ensaio-card__link { display: block; color: inherit; text-decoration: none; -webkit-tap-highlight-color: transparent; }
.ensaio-card__link:focus-visible { outline: 2px solid var(--e-ink); outline-offset: 4px; }
.ensaio-card__media { position: relative; margin: 0 0 .9rem; aspect-ratio: 2 / 3; overflow: hidden; background: var(--e-paper-2); }
.ensaio-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform var(--e-slow) var(--e-ease); }
.ensaio-card__media::after { content: ""; position: absolute; inset: 0; background: var(--e-ink); opacity: 0; transition: opacity var(--e-fast) var(--e-ease); pointer-events: none; }
.ensaio-card__eyebrow { display: block; margin: 0 0 .35rem; padding: 0; color: var(--e-ink-70); }
.ensaio-card__title {
  display: inline; font-family: var(--e-display); font-weight: 400; font-variation-settings: "opsz" 144, "SOFT" 30, "WONK" 0;
  font-size: clamp(1.2rem, 1.7vw, 1.5rem); line-height: 1.15; letter-spacing: -.02em; margin: 0; padding: .04em .18em; margin-left: -.18em; color: var(--e-ink);
  box-decoration-break: clone; -webkit-box-decoration-break: clone;
  transition: background var(--e-fast) var(--e-ease), color var(--e-fast) var(--e-ease);
}
@media (hover: hover) {
  .ensaio-card__link:hover .ensaio-card__media::after, .ensaio-card__link:focus-visible .ensaio-card__media::after { opacity: .14; }
  .ensaio-card__link:hover .ensaio-card__media img, .ensaio-card__link:focus-visible .ensaio-card__media img { transform: scale(1.025); }
  .ensaio-card__link:hover .ensaio-card__title, .ensaio-card__link:focus-visible .ensaio-card__title { background: var(--e-ink); color: var(--e-paper); }   /* hover inverts */
}
.single-ensaio .ensaio-card figcaption, .ensaio-archive .ensaio-card figcaption { display: none !important; }

/* --- "Other sessions": same type first, then the 4 latest ---------------- */
.ensaio-other {
  max-width: var(--e-shell); margin: 0 auto; padding: clamp(2rem, 4vw, 3.5rem) 0 clamp(2.5rem, 5vw, 4.5rem);
  border-top: 1px solid var(--e-ink); display: grid; gap: clamp(2rem, 4vw, 3.5rem);
}
.ensaio-other__group { display: grid; gap: clamp(1rem, 2vw, 1.5rem); }
.ensaio-other__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .5rem 1.5rem; }
.ensaio-other__all {
  font-family: var(--e-body); font-size: .75rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase;
  color: var(--e-ink); text-decoration: none; border-bottom: 1px solid currentColor; padding: .15em .1em 0; margin: 0 -.1em;
  transition: background var(--e-fast) var(--e-ease), color var(--e-fast) var(--e-ease);
}
.single-ensaio .ensaio-other__all:hover, .single-ensaio .ensaio-other__all:focus-visible { background: var(--e-ink); color: var(--e-paper); border-color: var(--e-ink); }
.ensaio-other__all:focus-visible { outline: 2px solid var(--e-ink); outline-offset: 3px; }

/* --- Studio notes: the institutional block, visibly not about the session -- */
/* The grid's middle track is sized in ch of the notes' OWN font size (the section sets it), so 80ch is
   really 80 characters of the reading text. Before, the track was 65ch of the 14px body font (~455px),
   which stretched the page to ~4 screens. */
.ensaio-notes {
  position: relative; max-width: var(--e-shell); margin: 0 auto;
  padding: clamp(2.5rem, 5vw, 4.5rem) 0 clamp(3rem, 6vw, 5rem);
  border-top: 1px solid var(--e-ink);
  font-family: var(--e-body); font-size: 1.0625rem; line-height: 1.6;
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, var(--e-measure)) minmax(0, 1fr); column-gap: clamp(1.5rem, 4vw, 4rem);
}
.ensaio-notes::before {                         /* Paper-2 band, full-bleed */
  content: ""; position: absolute; inset: 0 50% 0 50%; width: 100vw; margin-left: -50vw;
  background: var(--e-paper-2); z-index: -1; pointer-events: none;
}
.ensaio-notes__head { grid-column: 1; display: flex; flex-direction: column; gap: .6rem; }
.ensaio-notes__hint { font-size: .85rem; line-height: 1.5; color: var(--e-ink-70); margin: 0; padding: 0; max-width: 24ch; }
.ensaio-notes__body { grid-column: 2; border-left: 1px solid var(--e-ink); padding-left: clamp(1.25rem, 3vw, 2.5rem); color: var(--e-ink); }
.ensaio-notes__body > * { max-width: var(--e-measure); }
.ensaio-notes__body p { margin: 0 0 1.1em; padding: 0; color: var(--e-ink-70); }
.ensaio-notes__body p:last-child { margin-bottom: 0; }
/* Text links: 1px rule, hover/focus INVERT to Paper on Ink (specificity raised so no theme rule can keep the text Ink). */
.single-ensaio .ensaio-notes__body a {
  color: var(--e-ink); background: transparent; text-decoration: underline; text-underline-offset: .18em; text-decoration-thickness: 1px; text-decoration-color: currentColor;
  padding: .05em .15em; margin: 0 -.15em; box-decoration-break: clone; -webkit-box-decoration-break: clone;
  transition: background var(--e-fast) var(--e-ease), color var(--e-fast) var(--e-ease);
}
.single-ensaio .ensaio-notes__body a:hover, .single-ensaio .ensaio-notes__body a:focus-visible,
.single-ensaio .ensaio-notes__body p a:hover, .single-ensaio .ensaio-notes__body li a:hover {
  background: var(--e-ink); color: var(--e-paper); text-decoration: none; -webkit-text-fill-color: var(--e-paper);
}
.single-ensaio .ensaio-notes__body a:focus-visible { outline: 2px solid var(--e-ink); outline-offset: 2px; }
.ensaio-notes__body h2 {
  font-family: var(--e-display); font-weight: 400; font-variation-settings: "opsz" 144, "SOFT" 30, "WONK" 0;
  font-size: clamp(1.5rem, 2.4vw, 2rem); line-height: 1.1; letter-spacing: -.02em;
  margin: 2em 0 .55em; padding: 1.1em 0 0; border-top: 1px solid var(--e-line); color: var(--e-ink);
}
.ensaio-notes__body h2:first-child, .ensaio-notes__body hr:first-child + h2 { margin-top: 0; padding-top: 0; border-top: 0; }
.ensaio-notes__body hr, .ensaio-notes__body .wp-block-separator { display: none; }   /* the editor's separators would double the H2 hairlines */
.ensaio-notes__body h3 { font-family: var(--e-display); font-weight: 400; font-size: 1.25rem; letter-spacing: -.02em; margin: 1.6em 0 .4em; padding: 0; }
.ensaio-notes__body ul, .ensaio-notes__body ol { padding-left: 1.2em; color: var(--e-ink-70); }
.ensaio-notes__body img { height: auto; }
@media (max-width: 1180px) {                    /* two columns: label + text */
  .ensaio-notes { grid-template-columns: minmax(11rem, 1fr) minmax(0, var(--e-measure)); }
}
@media (max-width: 900px) {
  .ensaio-notes { grid-template-columns: minmax(0, 1fr); row-gap: 1.5rem; }
  .ensaio-notes__head, .ensaio-notes__body { grid-column: 1; }
  .ensaio-notes__hint { max-width: 40ch; }
}

/* --- CTA ----------------------------------------------------------------- */
.ensaio-cta {
  max-width: var(--e-shell); margin: 0 auto;
  padding: clamp(2.5rem, 5vw, 4rem) 0 clamp(3.5rem, 7vw, 6rem);
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem 2rem;
  border-top: 1px solid var(--e-line);
}
.ensaio-cta__text { font-family: var(--e-display); font-weight: 400; font-variation-settings: "opsz" 144, "SOFT" 30, "WONK" 0; font-size: clamp(1.4rem, 2.4vw, 2rem); line-height: 1.15; letter-spacing: -.015em; margin: 0; max-width: 22ch; text-wrap: balance; }
.ensaio-cta__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.ensaio-btn {
  display: inline-flex; align-items: center; gap: .6rem;
  font-family: var(--e-body); font-size: .78rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; font-feature-settings: "tnum" 1;
  padding: .95rem 1.5rem; border: 1px solid var(--e-ink); border-radius: 0; text-decoration: none;
  transition: background var(--e-fast) var(--e-ease), color var(--e-fast) var(--e-ease);
}
.ensaio-btn--solid { background: var(--e-ink); color: var(--e-paper); }
.single-ensaio .ensaio-btn--solid:hover, .single-ensaio .ensaio-btn--solid:focus-visible,
.ensaio-archive .ensaio-btn--solid:hover, .ensaio-archive .ensaio-btn--solid:focus-visible { background: var(--e-paper); color: var(--e-ink); border-color: var(--e-ink); }
.ensaio-btn--ghost { background: transparent; color: var(--e-ink); }
.single-ensaio .ensaio-btn--ghost:hover, .single-ensaio .ensaio-btn--ghost:focus-visible,
.ensaio-archive .ensaio-btn--ghost:hover, .ensaio-archive .ensaio-btn--ghost:focus-visible { background: var(--e-ink); color: var(--e-paper); border-color: var(--e-ink); }
.ensaio-btn:focus-visible { outline: 2px solid var(--e-ink); outline-offset: 3px; }

/* --- Lightbox (built by lightbox.js) ------------------------------------ */
.ensaio-lb {
  position: fixed; inset: 0; z-index: 99999; background: var(--e-ink, #1A1A1A); color: var(--e-paper, #F4F1EA);
  display: flex; flex-direction: column; font-family: var(--e-body, Inter, sans-serif);
  opacity: 0; transition: opacity var(--e-fast, 200ms) ease; touch-action: pan-y;
}
.ensaio-lb.is-open { opacity: 1; }
.ensaio-lb[hidden] { display: none; }
.ensaio-lb__bar {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: .9rem clamp(1rem, 3vw, 2rem); font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase; font-feature-settings: "tnum" 1;
}
.ensaio-lb__count { margin: 0; font-variant-numeric: tabular-nums; }
.ensaio-lb__stage { position: relative; flex: 1 1 auto; min-height: 0; display: flex; align-items: center; justify-content: center; padding: 0 clamp(.5rem, 4vw, 4rem) clamp(1rem, 4vw, 3rem); }
.ensaio-lb__fig { margin: 0; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.ensaio-lb__img {
  max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; display: block;
  user-select: none; -webkit-user-drag: none;
  opacity: 0; transition: opacity 260ms ease;
}
.ensaio-lb__img.is-ready { opacity: 1; }
.ensaio-lb__btn {
  appearance: none; background: transparent; border: 1px solid rgba(244, 241, 234, .35); color: inherit;
  width: 2.75rem; height: 2.75rem; display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer; border-radius: 0; padding: 0;
  transition: background var(--e-fast, 200ms) ease, color var(--e-fast, 200ms) ease, border-color var(--e-fast, 200ms) ease;
}
.ensaio-lb__btn:hover, .ensaio-lb__btn:focus-visible { background: var(--e-paper, #F4F1EA); color: var(--e-ink, #1A1A1A); border-color: var(--e-paper, #F4F1EA); }
.ensaio-lb__btn:focus-visible { outline: 2px solid var(--e-paper, #F4F1EA); outline-offset: 3px; }
.ensaio-lb__btn svg { width: 1.1rem; height: 1.1rem; }
.ensaio-lb__nav { position: absolute; top: 50%; transform: translateY(-50%); }
.ensaio-lb__nav--prev { left: clamp(.5rem, 2vw, 1.5rem); }
.ensaio-lb__nav--next { right: clamp(.5rem, 2vw, 1.5rem); }
@media (max-width: 700px) {
  .ensaio-lb__nav { top: auto; bottom: .75rem; transform: none; }
  .ensaio-lb__stage { padding: 0 .5rem 4.25rem; }
}
.single-ensaio.ensaio-lb-open, html.ensaio-lb-open { overflow: hidden; }
.ensaio-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

@media (prefers-reduced-motion: reduce) {
  html.js .ensaio-gallery__item { opacity: 1; transform: none; transition: none; }
  .ensaio-gallery__item img, .ensaio-gallery__link::after, .ensaio-lb, .ensaio-lb__img, .ensaio-btn,
  .ensaio-card__media img, .ensaio-card__media::after, .ensaio-card__title { transition: none; }
  .ensaio-gallery__link:hover img, .ensaio-card__link:hover .ensaio-card__media img { transform: none; }
}
