/* Venurivo public interfaces. Scope every rule and inherit theme font/colors. */
.vnr-public{--vnr-gap:clamp(16px,2.3vw,30px);font:inherit;color:inherit;line-height:1.55;max-width:100%;}
.vnr-public *, .vnr-public *::before,.vnr-public *::after{box-sizing:border-box}
.vnr-public h1,.vnr-public h2,.vnr-public h3,.vnr-public p{color:inherit;font-family:inherit}
.vnr-public h1,.vnr-public h2,.vnr-public h3{line-height:1.2;margin:0 0 .65em;font-weight:650}
.vnr-public a{color:inherit;text-decoration:none}
.vnr-public a:hover,.vnr-public a:focus-visible{text-decoration:underline;text-underline-offset:3px}
.vnr-public :focus-visible{outline:2px solid currentColor;outline-offset:3px}
.vnr-muted,.vnr-card__venue{opacity:.72}
.vnr-single__media{width:100%;margin:0 0 clamp(16px,3vw,36px)}
.vnr-single__banner{display:block;width:100%;max-height:520px;aspect-ratio:16/7;object-fit:cover;border-radius:8px}
.vnr-single__intro{display:flex;align-items:center;gap:clamp(14px,2vw,24px);margin:0 0 24px}
.vnr-single__mark{width:clamp(64px,8vw,100px);flex:0 0 auto}
.vnr-single__logo{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;border-radius:8px}
.vnr-single__heading h1{font-size:clamp(1.8rem,4vw,3.2rem)}
.vnr-single__date{margin:.25em 0;font-weight:550}
.vnr-single__layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(250px,1fr);gap:clamp(24px,4vw,70px)}
.vnr-single__description{overflow-wrap:break-word;min-width:0}
.vnr-single__description>:first-child{margin-top:0}
.vnr-single__facts h2{font-size:1.2rem;margin:0 0 20px}
.vnr-fact{display:flex;flex-direction:column;gap:2px;margin:0 0 16px}
.vnr-fact strong{font-weight:650}
.vnr-fact span{overflow-wrap:anywhere}
.vnr-ticket-status{margin:24px 0 0;padding:12px 0;opacity:.75;font-size:.95em}
.vnr-categories{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px;opacity:.8;font-size:.9em}
.vnr-cards{display:grid;grid-template-columns:repeat(var(--vnr-columns,3),minmax(0,1fr));gap:var(--vnr-gap)}
.vnr-card{min-width:0;box-shadow:none;border:0;background:transparent}
.vnr-card__link{display:block;min-width:0}
.vnr-card__media{width:100%;aspect-ratio:16/10;overflow:hidden;border-radius:7px;background:rgba(128,128,128,.08);margin-bottom:12px}
.vnr-card__image{width:100%;height:100%;object-fit:cover;display:block}
.vnr-card__date,.vnr-card__venue{display:block;font-size:.86em}
.vnr-card h3{font-size:clamp(1rem,1.5vw,1.2rem);margin:.25em 0 .3em}
.vnr-filters{display:flex;align-items:end;flex-wrap:wrap;gap:16px;margin:0 0 30px}
.vnr-filters label{display:flex;flex-direction:column;gap:6px;min-width:145px;flex:1 1 180px;font-size:.9em}
.vnr-filters input,.vnr-filters select,.vnr-filters button{font:inherit;color:inherit;background:transparent;min-height:42px;padding:9px 12px;border:1px solid currentColor;border-radius:5px;width:100%;max-width:100%}
.vnr-filters input,.vnr-filters select{border-color:color-mix(in srgb,currentColor 25%,transparent)}
.vnr-filters select option{color:CanvasText;background:Canvas}
.vnr-filters button{flex:0 0 auto;width:auto;padding-inline:22px;cursor:pointer}
.vnr-pagination{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin:36px 0}
.vnr-pagination a{min-width:32px;text-align:center;padding:5px}
.vnr-pagination a[aria-current]{text-decoration:underline;font-weight:700}
.vnr-calendar__nav{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:0 0 24px}
.vnr-calendar__nav h2{margin:0;font-size:1.5rem}
.vnr-calendar__nav a{font-size:.9em}
.vnr-calendar__scroll{width:100%;overflow-x:auto}
.vnr-calendar table{border-collapse:separate;border-spacing:0;width:100%;min-width:620px;table-layout:fixed}
.vnr-calendar th{text-align:left;padding:10px;font-weight:650;font-size:.8em;opacity:.8}
.vnr-calendar td{vertical-align:top;height:110px;padding:9px;border:0;background:transparent;box-shadow:none}
.vnr-calendar tbody td:nth-child(2n){background:rgba(128,128,128,.035)}
.vnr-calendar__day{display:block;font-weight:650;font-size:.95em;margin-bottom:7px}
.vnr-calendar__event{display:block;font-size:.79em;line-height:1.35;margin:0 0 6px;overflow-wrap:anywhere}
.vnr-calendar__more{font-size:.75em;opacity:.7}
.vnr-archive{width:min(1200px,calc(100% - 36px));margin:40px auto 70px}
.vnr-archive__header h1{font-size:clamp(2rem,5vw,3rem);margin-bottom:30px}
@media(max-width:840px){.vnr-cards{grid-template-columns:repeat(min(2,var(--vnr-columns,3)),minmax(0,1fr))}.vnr-single__layout{grid-template-columns:1fr}.vnr-single__facts{max-width:100%}}
@media(max-width:560px){.vnr-cards{grid-template-columns:1fr}.vnr-single__intro{align-items:flex-start}.vnr-single__mark{width:62px}.vnr-single__banner{aspect-ratio:4/3}.vnr-calendar__nav{flex-wrap:wrap}.vnr-calendar__nav h2{flex:1 0 100%;order:-1}}
/* Phase 5: read-only, theme-colored ticket choices; no purchase control until checkout phase. */
.vnr-ticket-summary{margin:24px 0 0;color:inherit;font:inherit}
.vnr-ticket-summary h2{font-size:1.15rem;line-height:1.3;margin:0 0 12px;color:inherit;font-family:inherit}
.vnr-ticket-summary ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.vnr-ticket-summary li{padding:0;margin:0;background:transparent;border:0;box-shadow:none}
.vnr-ticket-summary p{margin:14px 0 0;opacity:.78;font-size:.9em}

/* Phase 6: minimal host-theme controls for optional staging ticket purchase. */
.vnr-ticket-summary__form{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:8px 0 18px}
.vnr-ticket-summary__form label{display:flex;gap:6px;align-items:center;font:inherit}
.vnr-ticket-summary__form input{width:62px;padding:7px 4px;color:inherit;background:transparent;border:1px solid color-mix(in srgb,currentColor 25%,transparent);border-radius:4px}
.vnr-ticket-summary__form button{font:inherit;cursor:pointer;color:inherit;background:transparent;border:1px solid currentColor;border-radius:4px;padding:7px 12px}
