/* Interkulturell Aktiv — section components.
   Bold aubergine design language: full-bleed brand hero + footer, white content, grotesque sans,
   hairline list rows. Original CSS/assets. Tokens only (ia-tokens.css). Scoped to .ia-site / .ia-*. */

/* ============================================================
   0. Base
   ============================================================ */
body.ia-site {
  background: var(--paper); color: var(--ink);
  font-family: var(--font-body); font-size: var(--fs-body); line-height: 1.6;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  overflow-x: clip;
}
.ia-site h1,.ia-site h2,.ia-site h3,.ia-site h4 { font-family: var(--font-display); font-weight: 700; line-height: 1.05; color: var(--ink); margin: 0; }
.ia-site p { margin: 0 0 1.1rem; }
.ia-site a { color: var(--brand-link); text-decoration: none; }
.ia-site a:hover { color: var(--brand-bright); }
.ia-site img { max-width: 100%; height: auto; display: block; }
.ia-site :focus-visible { outline: 3px solid var(--brand-bright); outline-offset: 2px; }
html, body.ia-site { max-width: 100%; }

.ia-wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--wrap-pad); }
.ia-section { padding-block: var(--sp-section); }
.ia-measure { max-width: var(--measure); }

.ia-skip-link { position: absolute; left:-9999px; top:0; z-index:1000; background: var(--ink); color:#fff; padding:.75rem 1.25rem; }
.ia-skip-link:focus { left: 0; }
.screen-reader-text { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); clip-path:inset(50%); }

/* kicker / eyebrow */
.ia-kicker { display:inline-block; font-family: var(--font-body); font-size: var(--fs-meta); font-weight:600;
  text-transform: uppercase; letter-spacing:.16em; color: var(--brand-link); margin-bottom:1rem; }
.ia-meta { font-size: var(--fs-meta); color: var(--muted); letter-spacing:.01em; }

/* arrow motif */
.ia-arrow::after { content:"↗"; display:inline-block; margin-left:.4em; transition: transform var(--dur) ease; }
a:hover > .ia-arrow::after, a.ia-arrow:hover::after { transform: translate(2px,-2px); }

/* buttons — flat, sharp */
.ia-btn { display:inline-flex; align-items:center; gap:.55rem; font-family: var(--font-body); font-weight:600;
  font-size:.95rem; line-height:1; padding:.95rem 1.5rem; min-height:48px; border:1px solid var(--ink);
  background: var(--ink); color:#fff !important; border-radius: var(--radius); transition: background var(--dur), color var(--dur); }
.ia-btn:hover { background: var(--brand); border-color: var(--brand); color:#fff !important; }
.ia-btn--outline { background: transparent; color: var(--ink) !important; }
.ia-btn--outline:hover { background: var(--ink); color:#fff !important; }
.ia-btn--onbrand { background:#fff; border-color:#fff; color: var(--brand) !important; }
.ia-btn--onbrand:hover { background: var(--brand-bright); border-color: var(--brand-bright); color:#fff !important; }

/* ============================================================
   1. Header (transparent over hero on front, solid white elsewhere)
   ============================================================ */
.ia-header { position: absolute; inset: 0 0 auto 0; z-index: 50; }
.ia-header__inner { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; min-height:84px; }
.ia-brand { display:inline-flex; align-items:center; gap:.6rem; text-decoration:none; }
.ia-brand__mark { width:34px; height:34px; display:grid; place-items:center; border:2px solid currentColor; border-radius:50%;
  font-family: var(--font-display); font-weight:800; font-size:.85rem; }
.ia-brand__name { font-family: var(--font-display); font-weight:700; font-size:1.02rem; letter-spacing:.02em; text-transform:uppercase; line-height:1; }
.ia-brand__sub { display:block; font-family: var(--font-body); font-weight:500; font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; opacity:.7; margin-top:.2rem; }

/* front page: white brand on the aubergine hero */
.ia-site.home .ia-header .ia-brand { color:#fff; }
/* interior: solid white header, aubergine brand */
.ia-site:not(.home) .ia-header { position: sticky; top:0; background: var(--paper); border-bottom:1px solid var(--line); }
.ia-site:not(.home) .ia-brand { color: var(--brand); }

.ia-header__tools { display:flex; align-items:center; gap:.4rem; }
.ia-tool { display:grid; place-items:center; width:44px; height:44px; border-radius:50%; color:inherit; background:transparent; border:0; cursor:pointer; }
.ia-site.home .ia-header .ia-tool { color:#fff; }
.ia-site:not(.home) .ia-header .ia-tool { color: var(--ink); }
.ia-tool:hover { background: rgba(127,30,110,.12); }
.ia-site.home .ia-tool:hover { background: rgba(255,255,255,.16); }
.ia-tool svg { width:20px; height:20px; }

/* burger */
.ia-burger__box { position:relative; display:block; width:22px; height:14px; }
.ia-burger__line, .ia-burger__line::before, .ia-burger__line::after { content:""; position:absolute; left:0; width:22px; height:2px; background: currentColor; transition: transform var(--dur), opacity var(--dur); }
.ia-burger__line { top:6px; } .ia-burger__line::before { top:-6px; } .ia-burger__line::after { top:6px; }
[aria-expanded="true"] .ia-burger__line { background: transparent; }
[aria-expanded="true"] .ia-burger__line::before { transform: translateY(6px) rotate(45deg); }
[aria-expanded="true"] .ia-burger__line::after { transform: translateY(-6px) rotate(-45deg); }

/* ============================================================
   2. Primary nav bar (white bar under the hero on front page)
   ============================================================ */
.ia-navbar { border-bottom:1px solid var(--line); background: var(--paper); }
.ia-navbar__list { display:flex; flex-wrap:wrap; gap:.25rem 1.75rem; list-style:none; margin:0; padding:1.15rem 0; }
.ia-navbar__list a { font-family: var(--font-body); font-weight:500; font-size:1rem; color: var(--ink); position:relative; padding-block:.2rem; }
.ia-navbar__list a:hover, .ia-navbar__list .current-menu-item>a, .ia-navbar__list .current_page_item>a { color: var(--brand-link); }
.ia-navbar__list .current-menu-item>a::after, .ia-navbar__list a:hover::after { content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; background: var(--brand); }
@media (max-width: 1000px){ .ia-navbar { display:none; } }

/* ============================================================
   3. HERO — full-bleed aubergine faceted field + title tiles
   ============================================================ */
.ia-hero { position:relative; background: var(--brand); color:#fff; min-height: 88vh; display:flex; align-items:flex-end; overflow:hidden; isolation:isolate; }
/* original faceted texture (no reference asset copied) */
.ia-hero::before, .ia-hero::after { content:""; position:absolute; inset:0; z-index:-1; }
.ia-hero::before {
  background:
    linear-gradient(135deg, transparent 0 42%, rgba(85,16,63,.55) 42% 43%, transparent 43%),
    linear-gradient(52deg,  transparent 0 60%, rgba(196,47,166,.28) 60% 61%, transparent 61%),
    linear-gradient(200deg, transparent 0 30%, rgba(255,255,255,.06) 30% 31%, transparent 31%),
    conic-gradient(from 210deg at 78% 18%, rgba(255,255,255,.10), transparent 25%),
    conic-gradient(from 20deg at 12% 82%, rgba(85,16,63,.6), transparent 30%),
    radial-gradient(120% 90% at 85% 0%, rgba(196,47,166,.35), transparent 55%),
    linear-gradient(160deg, var(--brand), var(--brand-deep));
}
.ia-hero::after {
  background:
    repeating-linear-gradient(114deg, transparent 0 62px, rgba(255,255,255,.03) 62px 63px),
    repeating-linear-gradient(24deg,  transparent 0 90px, rgba(0,0,0,.05) 90px 91px);
  mix-blend-mode: soft-light;
}
.ia-hero__inner { position:relative; width:100%; padding-block: 8rem 3rem; }
.ia-hero__lead { max-width: 40ch; }
.ia-hero__lead .ia-kicker { color: rgba(255,255,255,.85); }
.ia-hero h1 { font-size: var(--fs-hero); color:#fff; letter-spacing:-.01em; text-transform:none; }
.ia-hero__sub { margin-top:1.25rem; font-size: clamp(1.05rem,1rem+.5vw,1.35rem); color: rgba(255,255,255,.9); max-width:44ch; }

/* the scattered production title-tiles */
.ia-hero__tiles { margin-top: clamp(2.5rem,5vw,4.5rem); display:grid; grid-template-columns: repeat(12,1fr); gap:.5rem 1.5rem; }
.ia-tile { grid-column: span 4; }
.ia-tile:nth-child(3n+2){ align-self:center; } .ia-tile:nth-child(3n){ align-self:end; }
.ia-tile a { display:inline-flex; align-items:flex-start; gap:.4rem; color:#fff; font-family: var(--font-display);
  font-weight:700; font-size: var(--fs-title-tile); text-transform:uppercase; letter-spacing:.01em; line-height:1.1; }
.ia-tile a:hover { color: rgba(255,255,255,.72); }
.ia-tile__yr { display:block; font-family: var(--font-body); font-weight:600; font-size:.7rem; letter-spacing:.14em; opacity:.7; margin-bottom:.35rem; }
@media (max-width: 800px){ .ia-tile { grid-column: span 6; } }
@media (max-width: 520px){ .ia-tile { grid-column: span 12; } .ia-hero { min-height: 92vh; } }

/* ============================================================
   4. Section head + breadcrumb + filter tabs
   ============================================================ */
.ia-crumb { padding-top:1.5rem; font-size:.9rem; color: var(--muted); }
.ia-crumb a { color: var(--muted); } .ia-crumb a:hover { color: var(--brand-link); }
.ia-crumb span { color: var(--brand-link); }

.ia-pagehead { padding-block: clamp(2rem,4vw,3.5rem) clamp(1.5rem,3vw,2.5rem); }
.ia-pagehead h1 { font-size: var(--fs-h1); text-transform: uppercase; letter-spacing:-.01em; }
.ia-pagehead .ia-lead { margin-top:1.1rem; font-size: clamp(1.05rem,1rem+.5vw,1.3rem); color: var(--muted); max-width: 52ch; }

.ia-head { margin-bottom: clamp(1.5rem,3vw,2.5rem); }
.ia-head h2 { font-size: var(--fs-h2); text-transform: uppercase; }
.ia-head .ia-lead { margin-top:.75rem; color: var(--muted); max-width:56ch; }

.ia-tabs { display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; padding-block:1.25rem; border-bottom:1px solid var(--line); }
.ia-tabs a, .ia-tabs span { font-size:.95rem; color: var(--muted); }
.ia-tabs .is-active { color: var(--ink); font-weight:600; border:1px solid var(--ink); padding:.3rem .8rem; border-radius:var(--radius); }

/* ============================================================
   5. List rows (repertoire / productions) — reference row layout
   ============================================================ */
.ia-list { border-top:1px solid var(--line); }
.ia-row { display:grid; grid-template-columns: 120px 200px 1fr auto; align-items:center; gap:1.5rem;
  padding-block: 1.5rem; border-bottom:1px solid var(--line); }
.ia-row__idx { font-family: var(--font-display); font-weight:700; font-size:1.6rem; line-height:1; }
.ia-row__idx small { display:block; font-family: var(--font-body); font-weight:500; font-size:.8rem; color: var(--muted); margin-top:.35rem; text-transform:uppercase; letter-spacing:.08em; }
.ia-row__thumb { position:relative; aspect-ratio: 16/10; overflow:hidden; background: var(--paper-2); }
.ia-row__thumb .ia-ph, .ia-row__thumb img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.ia-row__body h3 { font-family: var(--font-display); font-weight:700; font-size: clamp(1.15rem,1rem+.9vw,1.7rem); text-transform:uppercase; letter-spacing:.005em; }
.ia-row__body h3 a { color: var(--ink); } .ia-row__body h3 a:hover { color: var(--brand-link); }
.ia-row__meta { margin-top:.5rem; color: var(--muted); font-size:.95rem; }
.ia-row__meta .sep { color: var(--line); margin-inline:.5rem; }
.ia-row__cta { display:inline-flex; align-items:center; gap:.5rem; font-weight:600; color: var(--brand-link); white-space:nowrap; }
.ia-row__cta svg { width:22px; height:22px; }
.ia-row:hover .ia-row__cta { color: var(--brand-bright); }
@media (max-width: 860px){
  .ia-row { grid-template-columns: 88px 1fr; grid-template-areas:"idx body" "thumb thumb" "cta cta"; gap:.4rem 1.25rem; }
  .ia-row__idx{grid-area:idx} .ia-row__body{grid-area:body} .ia-row__thumb{grid-area:thumb;aspect-ratio:16/9;margin-top:1rem} .ia-row__cta{grid-area:cta;margin-top:1rem}
}
@media (max-width: 480px){ .ia-row { grid-template-columns: 1fr; grid-template-areas:"idx" "body" "thumb" "cta"; } }

/* placeholder field (original) */
.ia-ph { background:
  linear-gradient(135deg, transparent 46%, rgba(255,255,255,.5) 46% 47%, transparent 47%),
  linear-gradient(160deg, var(--brand), var(--brand-deep)); }
.ia-ph--label::after { content:"Bild folgt"; position:absolute; left:.5rem; bottom:.4rem; font-size:10px;
  letter-spacing:.08em; text-transform:uppercase; color:#fff; opacity:.85; }

/* ============================================================
   6. Content prose / editorial pages
   ============================================================ */
.ia-prose { max-width: var(--measure); font-size: 1.075rem; }
.ia-prose h2 { font-size: var(--fs-h3); text-transform:uppercase; margin: 2.25rem 0 .75rem; }
.ia-prose h3 { font-size: 1.15rem; margin: 1.75rem 0 .5rem; }
.ia-prose p, .ia-prose li { color: #2c2833; }
.ia-prose ul, .ia-prose ol { margin: 0 0 1.2rem; padding-left: 1.2rem; }
.ia-prose li { margin-bottom:.4rem; }
.ia-prose strong { color: var(--ink); }
.ia-prose blockquote { margin:1.75rem 0; padding-left:1.25rem; border-left:3px solid var(--brand);
  font-family: var(--font-display); font-weight:600; font-size:1.35rem; line-height:1.3; text-transform:none; color: var(--ink); }
.ia-lead { color: var(--muted); }
.ia-empty { border:1px dashed var(--line); padding: clamp(1.25rem,3vw,2rem); background: var(--paper-2); }
.ia-empty--legal { border-color: var(--brand); }
.ia-empty--legal p:first-child { color: var(--brand-link); }

/* offer / feature cards (flat) */
.ia-grid { display:grid; gap:1px; background: var(--line); border-block:1px solid var(--line); }
.ia-grid--3 { grid-template-columns: repeat(3,1fr); }
@media (max-width:900px){ .ia-grid--3 { grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .ia-grid--3 { grid-template-columns:1fr; } }
.ia-feature { background: var(--paper); padding: clamp(1.5rem,3vw,2.5rem); display:flex; flex-direction:column; gap:.6rem; }
.ia-feature h3 { font-size: var(--fs-h3); text-transform:uppercase; }
.ia-feature p { color: var(--muted); margin:0; }
.ia-feature a.ia-arrow { margin-top:auto; font-weight:600; color: var(--brand-link); padding-top:.75rem; }

/* production single */
.ia-single { display:grid; grid-template-columns: minmax(0,360px) 1fr; gap: clamp(2rem,4vw,4rem); align-items:start; }
@media (max-width:800px){ .ia-single { grid-template-columns:1fr; } }
.ia-single__poster { position:relative; aspect-ratio:2/3; overflow:hidden; }
.ia-single__poster .ia-ph, .ia-single__poster img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.ia-credits { border-top:1px solid var(--line); padding-top:1.25rem; margin-top:1.75rem; }
.ia-credits dt { font-weight:600; color: var(--ink); }
.ia-credits dd { margin:0 0 .75rem; color: var(--muted); }

/* contact */
.ia-contact { display:grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem,4vw,4rem); }
@media (max-width:800px){ .ia-contact { grid-template-columns:1fr; } }
.ia-deflist { display:grid; gap:1.25rem; }
.ia-deflist .ia-meta { display:block; text-transform:uppercase; letter-spacing:.1em; margin-bottom:.15rem; }
.ia-form { display:grid; gap:1rem; }
.ia-field { display:grid; gap:.35rem; }
.ia-field label { font-size:.9rem; font-weight:600; }
.ia-field input, .ia-field textarea { font-family: var(--font-body); font-size:1rem; color: var(--ink);
  background: var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:.75rem .85rem; width:100%; min-height:48px; }
.ia-field textarea { min-height:auto; resize:vertical; }
.ia-field input:focus, .ia-field textarea:focus { border-color: var(--brand); }

/* ============================================================
   7. FOOTER — full-bleed aubergine, reference column structure
   ============================================================ */
.ia-footer { background: var(--brand); color:#fff; padding-top: clamp(3rem,5vw,5rem); }
.ia-footer a { color:#fff; } .ia-footer a:hover { color: rgba(255,255,255,.72); }
.ia-footer__top { display:grid; grid-template-columns: 1.1fr 1fr 1fr 1fr 1fr; gap: clamp(1.5rem,3vw,2.5rem); }
@media (max-width:1000px){ .ia-footer__top { grid-template-columns:1fr 1fr 1fr; } }
@media (max-width:620px){ .ia-footer__top { grid-template-columns:1fr 1fr; } }
.ia-footer__big { display:flex; flex-direction:column; gap:.9rem; }
.ia-footer__big a { font-family: var(--font-display); font-weight:700; font-size: clamp(1.3rem,1rem+1.4vw,1.9rem);
  text-transform:uppercase; letter-spacing:-.01em; width:max-content; border-bottom:2px solid transparent; }
.ia-footer__big a:hover { border-color:#fff; color:#fff; }
.ia-footer__col h4 { font-family: var(--font-display); font-weight:700; font-size:1.05rem; text-transform:uppercase; margin:0 0 1rem; }
.ia-footer__col ul { list-style:none; margin:0; padding:0; display:grid; gap:.6rem; }
.ia-footer__col a { font-size:.95rem; display:inline-flex; align-items:center; }
.ia-footer__div { border:0; border-top:1px solid var(--line-on-brand); margin: clamp(2.5rem,4vw,4rem) 0 0; }
.ia-footer__mid { display:grid; grid-template-columns: auto 1fr auto; gap: clamp(1.5rem,3vw,3rem); padding-block: 2rem; align-items:start; }
@media (max-width:800px){ .ia-footer__mid { grid-template-columns:1fr; } }
.ia-footer__mark { display:inline-flex; align-items:center; gap:.6rem; font-family: var(--font-display); font-weight:800; }
.ia-footer__mark .ia-brand__mark { color:#fff; }
.ia-footer address { font-style:normal; color: rgba(255,255,255,.85); line-height:1.7; font-size:.95rem; }
.ia-footer__bar { border-top:1px solid var(--line-on-brand); padding-block:1.5rem; display:flex; flex-wrap:wrap;
  gap:1rem 1.5rem; justify-content:space-between; font-size:.85rem; color: rgba(255,255,255,.7); }
.ia-footer__bar nav { display:flex; flex-wrap:wrap; gap:1.25rem; }

/* ============================================================
   8. Off-canvas mobile menu
   ============================================================ */
.ia-offcanvas { position:fixed; inset:0; z-index:120; background: var(--brand); }
.ia-offcanvas[hidden]{ display:none; }
.ia-offcanvas__panel { height:100%; overflow-y:auto; padding: 5.5rem var(--wrap-pad) 2.5rem; display:flex; flex-direction:column; gap:1.25rem; }
.ia-offcanvas .ia-navbar__list { flex-direction:column; align-items:flex-start; gap:0; padding:0; }
.ia-offcanvas .ia-navbar__list a { color:#fff; font-family: var(--font-display); font-weight:700; font-size:1.6rem;
  text-transform:uppercase; padding:.7rem 0; border-bottom:1px solid var(--line-on-brand); width:100%; }
.ia-offcanvas .ia-navbar__list a::after { display:none; }
.ia-offcanvas__close { position:absolute; top:1.25rem; right: var(--wrap-pad); }
body.ia-menu-open { overflow:hidden; }

/* ============================================================
   9. Motion (gated behind .ia-js) + reduced motion
   ============================================================ */
.ia-js .ia-reveal { opacity:0; transform: translateY(14px); transition: opacity .6s ease, transform .6s ease; }
.ia-js .ia-reveal.is-in { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  .ia-site *, .ia-hero * { animation:none !important; transition:none !important; }
  .ia-js .ia-reveal { opacity:1 !important; transform:none !important; }
}

/* ============================================================
   10. Small-screen overflow guards
   ============================================================ */
.ia-header__inner, .ia-brand, .ia-brand__name { min-width: 0; }
.ia-brand__name { overflow-wrap: anywhere; }
.ia-hero__tiles, .ia-tile, .ia-tile a { min-width: 0; }
.ia-tile a > span { overflow-wrap: anywhere; }
.ia-grid--2 { grid-template-columns: 1fr 1fr; }
@media (max-width: 620px){ .ia-grid--2 { grid-template-columns: 1fr; } }
@media (max-width: 560px){
  .ia-brand__sub { display: none; }
  .ia-brand__name { font-size: .9rem; }
  .ia-header__inner { gap: .75rem; }
}
@media (max-width: 380px){
  a.ia-tool { display: none; }               /* drop phone icon, keep burger */
  .ia-brand__mark { display: none; }
}

/* ============================================================
   11. PREMIUM POLISH PASS (overrides — appended last = wins)
   ============================================================ */

/* ---- Hero: real faceted field + grain + legibility scrim ---- */
.ia-hero { min-height: 92vh; }
.ia-hero__bg { position:absolute; inset:0; z-index:-2; overflow:hidden; }
.ia-facets { width:100%; height:100%; display:block; filter: saturate(1.08) contrast(1.02); }
.ia-hero__grain { position:absolute; inset:0; pointer-events:none; opacity:.5; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E"); }
.ia-hero::before { content:""; position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(180deg, rgba(24,4,18,0) 30%, rgba(24,4,18,.55) 100%),
    linear-gradient(102deg, rgba(24,4,18,.62) 0%, rgba(24,4,18,.12) 46%, transparent 62%); }
.ia-hero::after { content:none; }

.ia-hero__inner { padding-block: clamp(7rem,14vh,11rem) clamp(2.5rem,5vh,4rem); display:flex; flex-direction:column; min-height:92vh; justify-content:space-between; }
.ia-hero__lead { max-width: 22ch; }
.ia-hero .ia-kicker { display:inline-flex; align-items:center; gap:.75rem; color:#fff; opacity:.85; margin-bottom:1.5rem; }
.ia-hero .ia-kicker::before { content:""; width:34px; height:1px; background:currentColor; }
.ia-hero h1 { font-weight:800; font-size: clamp(2.6rem,1.1rem+6vw,6.4rem); line-height:.98; letter-spacing:-.025em; text-wrap:balance; }
.ia-hero__sub { margin-top:1.5rem; color:rgba(255,255,255,.82); font-size:clamp(1.05rem,1rem+.5vw,1.3rem); max-width:42ch; }

/* ---- Hero title-tiles: elegant bordered index over the field ---- */
.ia-hero__tiles { display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:0;
  margin-top: clamp(2.5rem,6vw,4.5rem); border-top:1px solid rgba(255,255,255,.28); }
.ia-tile { grid-column:auto; border-bottom:1px solid rgba(255,255,255,.16);
  border-right:1px solid rgba(255,255,255,.16); }
.ia-tile:nth-child(3n){ border-right:0; }
.ia-tile a { display:flex; align-items:flex-start; justify-content:space-between; gap:.75rem;
  color:#fff; padding:1.15rem 1.25rem 1.15rem 0; min-height:104px; transition: padding-left var(--dur) ease; }
.ia-tile:first-child a, .ia-tile a { padding-left:0; }
.ia-tile a:hover { color:#fff; padding-left:.6rem; }
.ia-tile a > span:first-child { display:flex; flex-direction:column; gap:.5rem; }
.ia-tile__yr { font-family:var(--font-body); font-weight:600; font-size:.66rem; letter-spacing:.18em; opacity:.6; margin:0; }
.ia-tile a { font-family:var(--font-display); font-weight:700; font-size:clamp(1rem,.8rem+.7vw,1.35rem);
  text-transform:uppercase; letter-spacing:0; line-height:1.08; }
.ia-tile .ia-arrow { opacity:.55; transition: transform var(--dur) ease, opacity var(--dur) ease; }
.ia-tile a:hover .ia-arrow { opacity:1; transform: translate(3px,-3px); }
@media (max-width: 760px){ .ia-hero__tiles { grid-template-columns:1fr 1fr; } .ia-tile:nth-child(3n){ border-right:1px solid rgba(255,255,255,.16);} .ia-tile:nth-child(2n){ border-right:0; } }
@media (max-width: 460px){ .ia-hero__tiles { grid-template-columns:1fr; } .ia-tile{ border-right:0 !important; } .ia-tile a{ min-height:0; padding-block:1rem; } }

/* ---- Refined placeholders: subtle faceted motif ---- */
.ia-ph { background:
  linear-gradient(125deg, transparent 48%, rgba(255,255,255,.07) 48% 49%, transparent 49%),
  linear-gradient(58deg, transparent 62%, rgba(0,0,0,.14) 62% 63%, transparent 63%),
  radial-gradient(120% 100% at 80% 12%, rgba(196,47,166,.4), transparent 55%),
  linear-gradient(150deg, #8a2a7c, var(--brand-deep)); }

/* ---- List rows: hover craft ---- */
.ia-list { border-top:1px solid var(--ink); }
.ia-row { border-bottom:1px solid var(--line); transition: background var(--dur) ease; position:relative; }
.ia-row::before { content:""; position:absolute; left:calc(var(--wrap-pad) * -1); right:calc(var(--wrap-pad) * -1); top:0; bottom:0; background: var(--paper-2); opacity:0; transition:opacity var(--dur) ease; z-index:-1; }
.ia-row:hover::before { opacity:1; }
.ia-row__idx { font-weight:800; font-size:1.5rem; color:var(--ink); letter-spacing:-.02em; }
.ia-row__idx small { color:var(--muted); }
.ia-row__thumb { border-radius:0; }
.ia-row__thumb .ia-ph { transition: transform .6s cubic-bezier(.2,.7,.2,1); transform-origin:center; }
.ia-row:hover .ia-row__thumb .ia-ph { transform: scale(1.06); }
.ia-row__body h3 { transition: color var(--dur) ease; }
.ia-row:hover .ia-row__body h3 a { color: var(--brand-link); }
.ia-row__cta svg { transition: transform var(--dur) ease; }
.ia-row:hover .ia-row__cta svg { transform: translateX(4px); }

/* ---- Nav underline animation ---- */
.ia-navbar__list a::after { content:""; position:absolute; left:0; bottom:-2px; height:2px; width:100%;
  background:var(--brand); transform: scaleX(0); transform-origin:left; transition: transform var(--dur) ease; }
.ia-navbar__list a:hover::after, .ia-navbar__list .current-menu-item>a::after, .ia-navbar__list .current_page_item>a::after { transform: scaleX(1); }

/* ---- Section rhythm + heads ---- */
.ia-section { padding-block: clamp(4rem,3rem+5vw,8rem); }
.ia-head h2 { font-size: clamp(1.9rem,1.3rem+2.4vw,3.2rem); letter-spacing:-.02em; }
.ia-pagehead h1 { font-weight:800; font-size: clamp(2.4rem,1.4rem+4vw,4.6rem); letter-spacing:-.03em; }

/* ---- Footer craft ---- */
.ia-footer { padding-top: clamp(4rem,6vw,6rem); }
.ia-footer__big a { position:relative; border-bottom:0; }
.ia-footer__big a::after { content:""; position:absolute; left:0; bottom:-.15em; height:2px; width:100%;
  background:#fff; transform: scaleX(0); transform-origin:left; transition: transform var(--dur) ease; }
.ia-footer__big a:hover::after { transform: scaleX(1); }
.ia-footer__col a { transition: opacity var(--dur) ease, transform var(--dur) ease; }
.ia-footer__col a:hover { transform: translateX(2px); }

/* ---- Buttons refine ---- */
.ia-btn { letter-spacing:.01em; }
.ia-btn svg { transition: transform var(--dur) ease; }
.ia-btn:hover svg { transform: translateX(3px); }

/* ---- Reveal: gentle stagger feel ---- */
.ia-js .ia-reveal { transform: translateY(22px); }

/* hero bg bulletproof clip (SVG cover can't create document overflow) */
.ia-hero { overflow: hidden; }
.ia-hero__bg { overflow: hidden; contain: strict; }
.ia-facets { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; overflow: hidden; }

/* narrow-screen: footer big-links + list rows must not force width */
.ia-footer__top, .ia-footer__col, .ia-footer__big { min-width: 0; }
.ia-footer__big a { width: auto; max-width: 100%; overflow-wrap: anywhere; }
.ia-row, .ia-row__idx, .ia-row__body, .ia-row__meta { min-width: 0; }
.ia-row__body h3, .ia-row__body h3 a, .ia-row__meta { overflow-wrap: anywhere; }
@media (max-width: 440px){
  /* keep footer menus 2-up on mobile, tighter + smaller */
  .ia-footer__top { grid-template-columns: 1fr 1fr; gap: 1.5rem 1.1rem; }
  .ia-footer__big { grid-column: 1 / -1; }
  .ia-footer__big a { font-size: 1.4rem; }
  .ia-footer__col h4 { font-size: .82rem; margin-bottom: .55rem; }
  .ia-footer__col ul { gap: .4rem; }
  .ia-footer__col a { font-size: .82rem; }
  .ia-footer address { font-size: .82rem; line-height: 1.55; }
}

/* ============================================================
   12. MOTION — entrance reveals + subtle hero animation
   ============================================================ */

/* front-page header: fixed overlay, goes solid on scroll */
.ia-site.home .ia-header { position: fixed; left:0; right:0; top:0; transition: background .4s ease, box-shadow .4s ease, backdrop-filter .4s ease; }
.ia-site.home .ia-header.is-solid { background: rgba(26,7,22,.72); backdrop-filter: saturate(150%) blur(12px); box-shadow: 0 1px 0 rgba(255,255,255,.10); }

/* refined reveal */
.ia-js .ia-reveal { opacity:0; transform: translateY(24px); will-change: opacity, transform;
  transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
.ia-js .ia-reveal.is-in { opacity:1; transform:none; }

/* hero entrance — gated behind .ia-js so no-JS shows content */
@keyframes iaUp { from { opacity:0; transform: translateY(22px); } to { opacity:1; transform:none; } }
.ia-js .ia-hero__lead > *, .ia-js .ia-hero__tiles .ia-tile { opacity:0; }
.ia-hero-in .ia-hero__lead .ia-kicker  { animation: iaUp .75s .10s both cubic-bezier(.2,.7,.2,1); }
.ia-hero-in .ia-hero__lead h1          { animation: iaUp .90s .22s both cubic-bezier(.2,.7,.2,1); }
.ia-hero-in .ia-hero__lead .ia-hero__sub { animation: iaUp .80s .40s both cubic-bezier(.2,.7,.2,1); }
.ia-hero-in .ia-hero__tiles .ia-tile   { animation: iaUp .70s both cubic-bezier(.2,.7,.2,1); }
.ia-hero-in .ia-hero__tiles .ia-tile:nth-child(1){ animation-delay:.52s; }
.ia-hero-in .ia-hero__tiles .ia-tile:nth-child(2){ animation-delay:.60s; }
.ia-hero-in .ia-hero__tiles .ia-tile:nth-child(3){ animation-delay:.68s; }
.ia-hero-in .ia-hero__tiles .ia-tile:nth-child(4){ animation-delay:.76s; }
.ia-hero-in .ia-hero__tiles .ia-tile:nth-child(5){ animation-delay:.84s; }
.ia-hero-in .ia-hero__tiles .ia-tile:nth-child(6){ animation-delay:.92s; }
/* no-JS / reduced-motion safety: show everything */
.ia-hero-shown .ia-hero__lead > *, .ia-hero-shown .ia-hero__tiles .ia-tile { opacity:1 !important; }
html:not(.ia-js) .ia-hero__lead > *, html:not(.ia-js) .ia-hero__tiles .ia-tile { opacity:1; }

/* subtle continuous facet drift (very slow, calm) */
@media (prefers-reduced-motion: no-preference) {
  .ia-facets { animation: iaDrift 26s ease-in-out infinite alternate; transform-origin: 62% 38%; }
  @keyframes iaDrift { from { transform: scale(1.03); } to { transform: scale(1.09) translateY(-1.2%); } }
}

/* smooth in-page scroll */
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

/* reduced-motion: kill it all */
@media (prefers-reduced-motion: reduce) {
  .ia-site *, .ia-hero *, .ia-facets { animation: none !important; transition: none !important; }
  .ia-js .ia-reveal { opacity:1 !important; transform:none !important; }
  .ia-js .ia-hero__lead > *, .ia-js .ia-hero__tiles .ia-tile { opacity:1 !important; }
}

/* ============================================================
   13. Seeded facet artwork (unique per production)
   ============================================================ */
.ia-art { position:absolute; inset:0; width:100%; height:100%; display:block; }
.ia-row__thumb, .ia-single__poster { position:relative; overflow:hidden; background:var(--brand-deep); }
.ia-row__thumb .ia-art, .ia-single__poster .ia-art { transition: transform .6s cubic-bezier(.2,.7,.2,1); transform-origin:center; }
.ia-row:hover .ia-row__thumb .ia-art { transform: scale(1.07); }
.ia-ph-note { position:absolute; left:.5rem; bottom:.4rem; z-index:2; font-size:10px; letter-spacing:.1em;
  text-transform:uppercase; color:#fff; opacity:.7; pointer-events:none; }
.ia-single__poster .ia-ph-note { left:.65rem; bottom:.6rem; }

/* ============================================================
   14. Hero fit — keep hero within ~100vh, headline un-pressed
   ============================================================ */
.ia-hero { min-height: 100svh; }
.ia-hero__inner { min-height: 100svh; padding-block: clamp(5rem,10vh,7rem) clamp(1.5rem,3vh,2.5rem); }
/* !important beats Avada's runtime responsive-typography inline style */
.ia-hero h1 { font-size: clamp(2rem,.8rem+2.8vw,3.7rem) !important; line-height: 1.05 !important; letter-spacing: -.02em; }
.ia-hero__lead { max-width: min(760px, 92vw); }   /* px, not ch — ch is relative to the small body font */
.ia-hero__sub { margin-top: 1.15rem; max-width: 48ch; }
.ia-hero__tiles { margin-top: clamp(1.5rem,3.5vh,2.75rem); }
.ia-tile a { min-height: 88px; padding-block: .9rem; }
/* short/landscape viewports: let content breathe instead of clipping */
@media (max-height: 720px){
  .ia-hero, .ia-hero__inner { min-height: auto; }
  .ia-hero__inner { padding-block: 6rem 2.5rem; }
}

/* ============================================================
   15. Off-canvas menu — premium
   ============================================================ */
.ia-offcanvas { position:fixed; inset:0; z-index:120; background: linear-gradient(158deg, var(--brand) 0%, var(--brand-deep) 100%); overflow:hidden; }
.ia-offcanvas[hidden] { display:none; }
.ia-offcanvas__bg { position:absolute; inset:0; z-index:0; opacity:.32; }
.ia-offcanvas__bg .ia-art { position:absolute; inset:0; width:100%; height:100%; }
.ia-offcanvas::after { content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background: radial-gradient(120% 80% at 100% 0%, rgba(196,47,166,.28), transparent 60%); }

.ia-offcanvas__panel { position:relative; z-index:1; height:100%; max-width:720px; margin-inline:auto;
  padding: 1.15rem var(--wrap-pad) 2rem; display:flex; flex-direction:column; overflow-y:auto; }
.ia-offcanvas__top { display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding-bottom:1.25rem; border-bottom:1px solid rgba(255,255,255,.16); }
.ia-offcanvas__top .ia-brand__name { color:#fff; font-size:1rem; }
.ia-offcanvas__top .ia-brand__mark { color:#fff; }

.ia-offcanvas__close { display:grid; place-items:center; width:48px; height:48px; border-radius:50%;
  border:1px solid rgba(255,255,255,.4); background:transparent; color:#fff; cursor:pointer;
  transition: transform .4s cubic-bezier(.2,.7,.2,1), background .3s, border-color .3s; }
.ia-offcanvas__close svg { width:20px; height:20px; }
.ia-offcanvas__close:hover { transform: rotate(90deg); background:#fff; color:var(--brand); border-color:#fff; }

/* numbered nav */
.ia-menu { padding-top:.5rem; }
.ia-menu .ia-navbar__list { display:block; counter-reset: iam; margin:0; padding:0; border:0; background:none; }
.ia-menu .ia-navbar__list li { counter-increment: iam; margin:0; border-bottom:1px solid rgba(255,255,255,.14); }
.ia-menu .ia-navbar__list a { display:flex; align-items:center; gap:1.1rem; width:100%; padding:1.05rem 0;
  font-family:var(--font-display); font-weight:700; font-size:clamp(1.5rem,6.5vw,2.3rem); line-height:1.05;
  text-transform:uppercase; letter-spacing:-.01em; color:#fff; transition: color .3s, padding-left .35s cubic-bezier(.2,.7,.2,1); }
.ia-menu .ia-navbar__list a::before { content: counter(iam, decimal-leading-zero); font-family:var(--font-body);
  font-weight:600; font-size:.72rem; letter-spacing:.14em; color:var(--brand-bright); align-self:flex-start; margin-top:.5rem; min-width:1.75rem; }
.ia-menu .ia-navbar__list a::after { content:"↗"; margin-left:auto; font-size:1.1rem; opacity:.45; transition: transform .35s cubic-bezier(.2,.7,.2,1), opacity .3s; }
.ia-menu .ia-navbar__list a:hover { color:#fff; padding-left:.6rem; background:none; }
.ia-menu .ia-navbar__list a:hover::after { opacity:1; transform: translate(4px,-4px); }
.ia-menu .ia-navbar__list .current-menu-item > a, .ia-menu .ia-navbar__list .current_page_item > a { color:var(--brand-bright); }
.ia-menu .ia-navbar__list .current-menu-item > a::after { opacity:1; }

/* foot */
.ia-offcanvas__foot { margin-top:auto; padding-top:1.75rem; display:flex; flex-wrap:wrap; align-items:flex-end;
  justify-content:space-between; gap:1.5rem; }
.ia-offcanvas__contact .ia-kicker { margin-bottom:.6rem; }
.ia-offcanvas__cta { align-self:flex-end; }

/* staggered entrance on open */
@keyframes iaMenuIn { from { opacity:0; transform: translateX(-20px); } to { opacity:1; transform:none; } }
body.ia-menu-open .ia-menu .ia-navbar__list li { animation: iaMenuIn .5s both cubic-bezier(.2,.7,.2,1); }
body.ia-menu-open .ia-menu .ia-navbar__list li:nth-child(1){ animation-delay:.08s; }
body.ia-menu-open .ia-menu .ia-navbar__list li:nth-child(2){ animation-delay:.14s; }
body.ia-menu-open .ia-menu .ia-navbar__list li:nth-child(3){ animation-delay:.20s; }
body.ia-menu-open .ia-menu .ia-navbar__list li:nth-child(4){ animation-delay:.26s; }
body.ia-menu-open .ia-menu .ia-navbar__list li:nth-child(5){ animation-delay:.32s; }
body.ia-menu-open .ia-menu .ia-navbar__list li:nth-child(6){ animation-delay:.38s; }
body.ia-menu-open .ia-menu .ia-navbar__list li:nth-child(7){ animation-delay:.44s; }
body.ia-menu-open .ia-menu .ia-navbar__list li:nth-child(8){ animation-delay:.50s; }
body.ia-menu-open .ia-offcanvas__foot { animation: iaMenuIn .6s .54s both cubic-bezier(.2,.7,.2,1); }
@media (prefers-reduced-motion: reduce){
  body.ia-menu-open .ia-menu .ia-navbar__list li, body.ia-menu-open .ia-offcanvas__foot,
  .ia-offcanvas__close { animation:none !important; }
}
