/* Scoped marketing films. Existing sections, tokens and galleries are unchanged. */
.mila-films { display:grid; gap:24px; margin-top:40px; }
.mila-films.is-pair { grid-template-columns:repeat(2,minmax(0,1fr)); }
.mila-films.is-community { grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr); align-items:center; }
.mila-film { margin:0; min-width:0; overflow:hidden; border:1px solid var(--hair); border-radius:22px; background:var(--warm); box-shadow:0 12px 36px rgb(0 0 0 / .04); }
.mila-film-stage { position:relative; aspect-ratio:var(--film-ratio,16 / 9); overflow:hidden; background:#0b0b0b; }
.mila-film-stage video,.mila-film-poster { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; display:block; }
.mila-film-poster { z-index:1; pointer-events:none; }
.mila-film.has-played .mila-film-poster { visibility:hidden; }
.mila-film-control { position:absolute; right:16px; bottom:16px; z-index:2; display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:10px 16px; border:1px solid rgb(255 255 255 / .38); border-radius:999px; color:white; background:rgb(16 16 16 / .58); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); font-family:inherit; font-size:12px; font-weight:500; line-height:1.2; cursor:pointer; box-shadow:0 4px 18px rgb(0 0 0 / .14); }
.mila-film-control[hidden] { display:none; }
.mila-film-control:focus-visible { outline:2px solid white; outline-offset:4px; }
.mila-film figcaption { padding:22px 24px 24px; }
.mila-film-kicker { display:block; font-size:10px; letter-spacing:.11em; text-transform:uppercase; color:var(--muted); }
.mila-film h3 { margin:8px 0 6px; font-size:20px; font-weight:500; line-height:1.3; letter-spacing:-.02em; }
.mila-film p { margin:0; font-size:14px; line-height:1.6; color:var(--muted); max-width:62ch; }
.mila-film-status:not(:empty) { display:block; margin-top:10px; color:var(--muted); font-size:12px; }
.mila-film-fallback { display:block; padding:0 24px 20px; }
@media (max-width:640px) {
 .mila-films.is-pair,.mila-films.is-community { grid-template-columns:minmax(0,1fr); }
 .mila-film.is-portrait { width:min(100%,340px); justify-self:center; }
 .mila-film { border-radius:18px; }
 .mila-film figcaption { padding:18px 20px 20px; }
 .mila-film h3 { font-size:19px; }
 .mila-film-control { right:12px; bottom:12px; }
}
@media (prefers-reduced-motion:reduce) { .mila-film * { scroll-behavior:auto; } }


/* Voice demo replaces the former static conversation card. */
.mila-film--voice {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(280px, 1fr);
  align-items: center;
  background: linear-gradient(135deg, var(--warm), var(--warm));
  box-shadow: 0 18px 60px rgb(0 0 0 / .06);
}
.mila-film--voice .mila-film-stage { border-radius: 18px; margin: 16px 0 16px 16px; }
.mila-film--voice figcaption { padding: 30px; }
.mila-film--voice h3 { font-size: clamp(22px, 2vw, 30px); }
.voice-film-prompt { margin: 22px 0; padding: 16px 18px; border: 1px solid var(--hair); border-radius: 16px; background: var(--warm); color: var(--ink); font-size: 16px; line-height: 1.5; }
.voice-film-steps { list-style: none; padding: 0; margin: 24px 0; display: grid; gap: 18px; }
.voice-film-steps li { display: flex; gap: 14px; align-items: baseline; }
.voice-film-steps li > span { color: var(--muted); font-size: 10px; letter-spacing: .08em; }
.voice-film-steps strong { font-size: 13px; font-weight: 500; }
.voice-film-steps p { font-size: 12px; margin-top: 4px; }
.voice-film-cta { display: inline-flex; align-items: center; gap: 16px; font-size: 12px; }
.mila-film--voice > noscript { grid-column: 1 / -1; }
@media (max-width: 900px) {
  .mila-film--voice { grid-template-columns: minmax(0, 1fr); }
  .mila-film--voice .mila-film-stage { margin: 12px 12px 0; border-radius: 12px; }
  .mila-film--voice figcaption { padding: 24px; }
}


/* ======================================================================
   MILA AROUND THE WORLD
   ======================================================================
   Six 10-second location films. Loaded only by the pages that show them,
   so the other twenty routes pay nothing for it.

   The grid STATES its column counts rather than using auto-fit: six cards
   reflow to 4+2 or 5+1 at in-between widths, and a row that is one short
   reads as a bug rather than a choice. 3 / 2 / 1, and nothing between.

   The cards are glass over the page ground. `backdrop-filter` is a
   progressive enhancement -- where it is unsupported the card still has
   its border, its tint and its shadow, so nothing depends on it. */

.mila-films.is-world {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin-top: 36px;
}
@media (max-width: 1040px) { .mila-films.is-world { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px)  { .mila-films.is-world { grid-template-columns: minmax(0, 1fr); gap: 18px; } }

.mila-films.is-world .mila-film {
  border-radius: 20px;
  background: color-mix(in srgb, var(--warm) 72%, transparent);
  backdrop-filter: blur(18px) saturate(1.3);
  -webkit-backdrop-filter: blur(18px) saturate(1.3);
  border: 1px solid color-mix(in srgb, var(--hair) 80%, transparent);
  box-shadow: 0 14px 44px rgb(0 0 0 / .08);
  transition: transform .35s cubic-bezier(.2,.7,.3,1), box-shadow .35s cubic-bezier(.2,.7,.3,1), border-color .35s;
}
@media (hover: hover) {
  .mila-films.is-world .mila-film:hover {
    transform: translateY(-4px);
    box-shadow: 0 22px 60px rgb(0 0 0 / .14);
    border-color: color-mix(in srgb, var(--blue) 42%, var(--hair));
  }
}
/* A transform is motion. Honour the same preference the films themselves do. */
@media (prefers-reduced-motion: reduce) {
  .mila-films.is-world .mila-film { transition: none; }
  .mila-films.is-world .mila-film:hover { transform: none; }
}

/* Rounded video corners, asked for by name. The stage is clipped so the
   FOOTAGE is rounded, not merely the card behind it. */
.mila-films.is-world .mila-film-stage {
  border-radius: 16px;
  margin: 14px 14px 0;
  background: #000;
}
.mila-films.is-world .mila-film-stage video,
.mila-films.is-world .mila-film-poster { object-fit: cover; }
.mila-films.is-world .mila-film figcaption { padding: 16px 18px 20px; }
.mila-films.is-world .mila-film h3 { font-size: 18px; margin: 6px 0 4px; }
.mila-films.is-world .mila-film p { font-size: 13.5px; }

/* The location line. Blue, because it is the one accent this site has. */
.mila-world-place {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 10px; letter-spacing: .11em; text-transform: uppercase;
  color: var(--blue-ink); font-weight: 500;
}
[data-theme="dark"] .mila-world-place { color: var(--blue-soft); }
.mila-world-place svg { width: 12px; height: 12px; flex: none; }

/* ---- sound toggle ----------------------------------------------------
   Beside the play control, same glass, same 44px target. Hidden until
   mila-video.js unhides it: with scripting off it would do nothing, and
   the <noscript> link is the fallback that still works. */
.mila-film-sound {
  position: absolute; left: 16px; bottom: 16px; z-index: 2;
  display: inline-flex; align-items: center; gap: 8px;
  min-height: 44px; padding: 10px 16px;
  border: 1px solid rgb(255 255 255 / .38); border-radius: 999px;
  color: white; background: rgb(16 16 16 / .58);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  font-family: inherit; font-size: 12px; font-weight: 500; line-height: 1.2;
  cursor: pointer; box-shadow: 0 4px 18px rgb(0 0 0 / .14);
}
.mila-film-sound[hidden] { display: none; }
.mila-film-sound:focus-visible { outline: 2px solid white; outline-offset: 4px; }
.mila-film-sound[aria-pressed="true"] {
  background: color-mix(in srgb, var(--blue) 82%, black);
  border-color: color-mix(in srgb, var(--blue-lift) 70%, white);
}
@media (max-width: 640px) {
  .mila-film-sound { left: 12px; bottom: 12px; padding: 10px 13px; }
  .mila-films.is-world .mila-film-stage { margin: 12px 12px 0; }
}

/* The landing-page preview: three cards, never six. */
.mila-world-more { margin-top: 28px; }

