/* One compact, accessible shell on every public route. Programme and commerce are untouched. */
@font-face{font-family:Montserrat;src:url('/fonts/Montserrat-Medium.ttf') format('truetype');font-weight:400 600;font-display:swap}
@font-face{font-family:Montserrat;src:url('/fonts/Montserrat-Bold.ttf') format('truetype');font-weight:700 900;font-display:swap}
:root{--shell-bg:#230d39;--shell-fg:#fff;--shell-line:#ffffff35;--shell-accent:#c6f28b}
:root[data-festival-brand="cinema"]{--shell-bg:#fff;--shell-fg:#151515;--shell-line:#15151530;--shell-accent:#151515}
html{scroll-padding-top:88px}
html body .festival-site-header{position:sticky;top:0;z-index:40;margin:0;background:var(--shell-bg);color:var(--shell-fg);border-bottom:1px solid var(--shell-line);font:600 13px/1.35 Montserrat,Arial,sans-serif;box-shadow:none}
html body .festival-header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;width:min(1280px,calc(100% - 48px));min-height:74px;margin:auto;padding:6px 0}
html body .festival-home-logo{display:flex;align-items:center;justify-content:flex-start;flex:0 0 88px;min-height:56px;text-decoration:none;color:inherit}
html body .festival-home-logo img{display:block;width:74px;height:60px;object-fit:contain;background:transparent;filter:none;mix-blend-mode:normal}
html[data-festival-brand="cinema"] body .festival-home-logo{flex-basis:154px}
html[data-festival-brand="cinema"] body .festival-home-logo img{width:148px;height:58px}
html body .festival-site-nav{display:flex;align-items:center;justify-content:flex-end;flex-wrap:nowrap;gap:8px;margin:0;padding:0;min-width:0}
html body .festival-site-nav :is(a,summary){display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 13px;margin:0;border:0;background:transparent;color:inherit;font:inherit;text-transform:none;text-decoration:none;letter-spacing:0;cursor:pointer;white-space:nowrap;border-radius:4px;box-shadow:none;transform:none}
html body .festival-site-nav :is(a,summary):hover{background:color-mix(in srgb,var(--shell-fg) 9%,transparent)}
html body .festival-site-nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:5px}
html body :is(.festival-site-header,.festival-shared-footer) :is(a,summary):focus-visible{outline:3px solid currentColor;outline-offset:3px}
html body .festival-menu{position:relative;padding:0;margin:0;border:0;background:transparent;color:inherit}
html body .festival-menu>summary{list-style:none;border:1px solid var(--shell-line);padding-inline:14px}
html body .festival-menu>summary::-webkit-details-marker{display:none}
html body .festival-menu>summary span{font-size:23px;line-height:1}
html body .festival-menu-panel{position:absolute;right:0;top:calc(100% + 10px);width:260px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 100px);overflow:auto;display:grid;gap:2px;padding:10px;background:var(--shell-bg);color:var(--shell-fg);border:1px solid var(--shell-line);border-radius:8px;box-shadow:0 12px 35px #0003}
html body .festival-menu-panel a{justify-content:flex-start;white-space:normal;padding:10px 12px}
html body .festival-menu-panel :is(.festival-menu-program,.festival-menu-merch){display:none}
html body .festival-nav-order{border:1px solid var(--shell-line);border-radius:24px}
html body .festival-nav-order span{min-width:20px;text-align:center}
html body .festival-footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:2px 20px;padding-top:10px}
html body .festival-footer-links a{display:inline-flex;align-items:center;min-height:44px;padding:8px 4px;color:#222;font:600 12px/1.4 Montserrat,Arial,sans-serif;text-decoration:underline;text-underline-offset:4px}
html body .festival-thanks-intro{width:min(1120px,calc(100% - 40px));margin:36px auto 24px}
html body .festival-thanks-intro h1{font:800 clamp(32px,5vw,56px)/1.1 Montserrat,Arial,sans-serif;margin:0 0 12px}
html body .festival-thanks-intro p{font:400 17px/1.5 Montserrat,Arial,sans-serif}
/* Existing shared inner routes follow the host identity without changing the artwork. */
html[data-festival-brand="cinema"] body[data-festival-page="inner"]{--bg:#fff;--white:#111;--soft:#333;--muted:#555;--accent:#222;--ink:#111;--paper:#fff;--pink:#333;--green:#e4e4e4;--purple:#111;background:#fff!important;color:#111}
html[data-festival-brand="cinema"] body[data-festival-page="inner"]::before{display:none}
html[data-festival-brand="cinema"] body[data-festival-page="inner"] :is(.hero,.intro,.ribbon,.footer,.thanks-signature){background:#fff;color:#111;border-color:#ccc}
html[data-festival-brand="cinema"] body[data-festival-page="inner"] :is(.hero-copy,.hero-meta,.hero .eyebrow,.hero-meta span,.group-header .eyebrow,.group-intro,.ribbon span){color:#333}
html[data-festival-brand="cinema"] body[data-festival-page="inner"] .button{background:#111;color:#fff;border-color:#111}
html[data-festival-brand="cinema"] body[data-festival-page="inner"] .button.secondary{background:#fff;color:#111}
@media(max-width:680px){
 html body .festival-header-inner{width:calc(100% - 24px);min-height:68px;gap:8px;padding:4px 0}
 html body .festival-home-logo{flex-basis:62px;min-height:52px}
 html body .festival-home-logo img{width:60px;height:54px}
 html[data-festival-brand="cinema"] body .festival-home-logo{flex-basis:112px}
 html[data-festival-brand="cinema"] body .festival-home-logo img{width:110px;height:48px}
 html body .festival-site-nav{gap:3px}
 html body .festival-site-nav :is(a,summary){padding-inline:10px;font-size:12px}
 html body .festival-site-nav :is(.festival-nav-program,.festival-nav-merch){display:none}
 html body .festival-menu-panel :is(.festival-menu-program,.festival-menu-merch){display:flex}
 html body .festival-menu-panel{top:calc(100% + 8px)}
}
@media(max-width:380px){html body .festival-site-nav .festival-nav-order{padding-inline:7px;font-size:11px}html body .festival-site-nav:has(.festival-nav-order)>a[href="/talleres/"]{display:none}}
@media print{html body .festival-site-header{display:none}.festival-shared-footer{break-inside:avoid}}
/* Shared shop uses Cinema's paper-and-ink chrome on its own domain; original product art stays in color. */
html[data-festival-brand="cinema"] body.merch-festival{background-image:none!important;background-color:#fff!important;color:#111}
html[data-festival-brand="cinema"] .merch-festival :is(.intro,.intro .eyebrow,.festival-together,.collection-intro .eyebrow,.collection-intro>p:last-child,.mockup-note,.kits-section .section-heading>p,.cart-details li,.cart-row .small,.faq details p,.cart-row h3,.steps p,.steps span){color:#222}
html[data-festival-brand="cinema"] .merch-festival :is(.kits-section,.order-section){background:#f3f3f3;color:#111;border-color:#bbb}
html[data-festival-brand="cinema"] .merch-festival :is(.support-section,.delivery-badge){background:#eee;color:#111;border-color:#333;box-shadow:3px 4px 0 #333}
html[data-festival-brand="cinema"] .merch-festival :is(.product-section,.merch-preview){background:#fff;color:#111;border-color:#999;box-shadow:2px 3px 0 #ddd}
html[data-festival-brand="cinema"] .merch-festival :is(.merch-preview[aria-selected=true],.kit-option[aria-pressed=true]){border-color:#111;box-shadow:0 0 0 2px #111}
html[data-festival-brand="cinema"] .merch-festival :is(.cart-row,.faq details){border-color:#bbb}
html[data-festival-brand="cinema"] .merch-festival .cart-actions .remove{color:#111}
html[data-festival-brand="cinema"] .merch-festival h1 em{color:#111;text-decoration-color:#777}
html[data-festival-brand="cinema"] .merch-festival .cinema-logo{filter:none}
html[data-festival-brand="cinema"] body[data-festival-page="inner"] :is(.brand-cinema,.cinema-logo){filter:none;mix-blend-mode:normal}
html[data-festival-brand="cinema"] body[data-festival-page="inner"] .venue-information>summary{color:#222}
html[data-festival-brand="cinema"] body[data-festival-page="inner"] :is(.venue-information,.workshop-group){border-color:#ccc}
