/* Matteo Brioschi - optional media consent, 2026-10-16 */
.media-gate{position:relative;isolation:isolate;box-sizing:border-box;display:flex;justify-content:center;align-items:center;width:100%;padding:23px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:radial-gradient(circle at 55% 25%,#29292a 0%,#151516 57%,#0e0f10 100%);color:#eee8e2;overflow:hidden;min-width:0;box-shadow:0 16px 45px rgba(0,0,0,.28)}
body.page-selected-productions .productions-hero-player .media-gate.spotify-hero-embed{height:352px;min-height:352px}
.media-gate-inner{max-width:360px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;font-family:inherit}
.media-gate-inner[hidden]{display:none!important}
.media-gate-inner strong{font-size:19px;line-height:1.25;color:#f3ede5}
.media-gate-inner p{font-size:12px;line-height:1.55;color:#c5bdb5;margin:0}
.media-gate-inner a{font-size:11px;color:#e7ddd1;text-decoration:underline;text-underline-offset:3px}
.media-activate,.legal-choices-btn{cursor:pointer;background:#eee8df;color:#191919;font:700 12px/1.35 inherit;letter-spacing:.02em;border:0;border-radius:100px;padding:12px 20px;transition:background .15s}
.media-activate:hover,.legal-choices-btn:hover{background:#fff}
.media-gate:focus-within{outline:1px solid #e7d2bd;outline-offset:2px}
.video-shell .media-gate.youtube-gate{aspect-ratio:16 / 9;min-height:260px;height:100%;border-radius:12px}
.video-shell .media-gate.youtube-gate.is-loaded{padding:0}
.media-gate.is-loaded{display:block;padding:0;background:#121212}
.media-gate.is-loaded iframe{display:block;width:100%;height:100%;border:0;border-radius:inherit;background:#121212}
.legal-policy{font-family:inherit;max-width:880px}
.legal-policy h2{margin:30px 0 10px;font-size:clamp(19px,2vw,25px);letter-spacing:-.02em}
.legal-policy p{max-width:800px;font-size:15px;line-height:1.75;margin:0 0 12px}
.legal-policy a{text-decoration:underline;text-underline-offset:2px}
.legal-updated{font-size:12px!important;opacity:.8;margin:0 0 25px!important}
.legal-pending{color:#754023!important;font-weight:700}
.legal-choices-btn{border:1px solid #171717;margin:12px 0}
.media-consent-banner[hidden],.media-consent-custom[hidden]{display:none!important}
.media-consent-banner{box-sizing:border-box;position:fixed;left:24px;right:24px;bottom:20px;z-index:99999;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 22px;align-items:center;max-width:980px;margin:auto;padding:19px 22px;border-radius:15px;background:#18191b;box-shadow:0 14px 66px rgba(0,0,0,.55);border:1px solid #5a524c;color:#f4eee8;font-family:Arial,sans-serif}
.media-consent-main strong{font-size:15px;font-weight:700;letter-spacing:.01em}
.media-consent-main p{font-size:12px;line-height:1.55;color:#d3cbc4;max-width:580px;margin:8px 0 0}
.media-consent-main a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.media-consent-buttons{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.media-consent-buttons button,.media-consent-custom button{cursor:pointer;border:1px solid #8f837a;border-radius:8px;background:transparent;color:#f3eee9;font:600 12px/1.2 Arial,sans-serif;padding:11px 13px}
.media-consent-buttons button[data-consent-accept],.media-consent-custom button[data-consent-save]{background:#f4eee8;color:#18191b;border-color:#f4eee8}
.media-consent-buttons button:hover,.media-consent-custom button:hover{outline:1px solid #fff}
.media-consent-custom{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.18);padding-top:12px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.media-consent-custom label{font-size:12px;display:flex;align-items:center;gap:7px;cursor:pointer}
.media-consent-custom input{accent-color:#f4eee8}
.media-consent-custom button{margin-left:auto}
.footer-text-button,.legal-mini-nav button{border:0;padding:0;background:none;cursor:pointer;color:inherit;font:inherit;text-decoration:underline;text-underline-offset:3px}
.legal-mini-nav{position:fixed;bottom:13px;right:18px;z-index:100;display:flex;gap:13px;align-items:center;flex-wrap:wrap;background:rgba(11,12,13,.72);border:1px solid rgba(255,255,255,.18);border-radius:25px;padding:9px 13px;color:#f3eee8;font:11px/1.2 Arial,sans-serif;backdrop-filter:blur(9px)}
.legal-mini-nav a{color:inherit;text-decoration:none}
.legal-mini-nav a:hover{text-decoration:underline}
body.page-contact .legal-mini-nav{background:#242424}
@media(max-width:720px){
.media-consent-banner{left:10px;right:10px;bottom:10px;display:flex;flex-direction:column;align-items:stretch;padding:16px;gap:15px;max-height:calc(100dvh - 20px);overflow-y:auto}
.media-consent-buttons{justify-content:stretch;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.media-consent-buttons button{padding:12px 5px;font-size:11px}
.media-consent-custom button{margin-left:0}
.media-gate-inner[hidden]{display:none!important}
.media-gate-inner strong{font-size:17px}
.media-gate{padding:16px}
.legal-mini-nav{max-width:calc(100% - 40px);font-size:10px;gap:10px}
}

/* Selected Productions — Restore borderless, full-width Spotify embed.
   Keep the required click-to-load privacy consent. Do not affect YouTube gates. */
body.page-selected-productions .productions-hero-player > .media-gate.spotify-hero-embed {
  width:100%;
  height:352px;
  min-height:352px;
  padding:0;
  border:0;
  border-radius:0;
  box-shadow:none;
  background:transparent;
  overflow:visible;
  display:flex;
  align-items:center;
  justify-content:flex-start;
}
/* Before consent: quiet prompt on the hero photo, not an artificial player box. */
body.page-selected-productions .productions-hero-player .spotify-hero-embed .media-gate-inner {
  max-width:370px;
  margin:0;
  padding:0;
  text-align:left;
  align-items:flex-start;
  gap:13px;
  background:none;
}
body.page-selected-productions .productions-hero-player .spotify-hero-embed .media-gate-inner strong {
  font-size:16px;
  line-height:1.35;
}
body.page-selected-productions .productions-hero-player .spotify-hero-embed .media-gate-inner p {
  max-width:310px;
  font-size:12px;
}
/* After consent: the native Spotify iframe fills the column, no wrapper frame. */
body.page-selected-productions .productions-hero-player > .media-gate.spotify-hero-embed.is-loaded {
  display:block;
  height:352px;
  min-height:352px;
  padding:0;
  border:0;
  box-shadow:none;
  background:transparent;
  overflow:visible;
}
body.page-selected-productions .productions-hero-player > .media-gate.spotify-hero-embed.is-loaded iframe[data-consent-iframe] {
  display:block;
  width:100%;
  height:352px;
  min-height:352px;
  padding:0;
  border:0;
  border-radius:12px;
  background:#121212;
  box-shadow:none;
}
@media (max-width:790px) {
  body.page-selected-productions .productions-hero-player > .media-gate.spotify-hero-embed:not(.is-loaded) {
    height:auto;
    min-height:160px;
    padding-block:16px;
  }
}
