/* v27: scoped to the homepage gallery and its native top-layer calendar. */
.dk27-afisha,.dk27-dialog{--dk27-ink:#25213c;--dk27-sub:#777084;--dk27-purple:#6c50df;--dk27-paper:#faf8fd;--dk27-surface:#fff;--dk27-line:#ece7f2;--dk27-soft:#ebe5fc;color:var(--dk27-ink);font-family:inherit;line-height:1.45}
.dk27-afisha.dk27-dark,.dk27-dialog.dk27-dark{--dk27-ink:#f4efff;--dk27-sub:#c0b6d1;--dk27-purple:#a994ff;--dk27-paper:#211c30;--dk27-surface:#2c253c;--dk27-line:#443953;--dk27-soft:#483669}
.dk27-afisha *, .dk27-dialog *{box-sizing:border-box}
.dk27-afisha{position:relative;padding:64px 0;background:var(--dk27-paper)}
.dk27-container{width:min(1440px,100%);margin:auto;padding:0 48px}
.dk27-heading{display:flex;justify-content:space-between;align-items:center;gap:32px;margin-bottom:28px}
.dk27-heading h2{font-size:clamp(30px,3.5vw,48px);font-weight:800;line-height:1.12;letter-spacing:-.025em;margin:14px 0 18px;color:var(--dk27-ink)}
.dk27-eyebrow{font-size:12px;letter-spacing:.09em;font-weight:750;color:var(--dk27-purple);margin:0}
.dk27-intro{font-size:18px;margin:0;color:var(--dk27-sub)}
.dk27-button{appearance:none;display:inline-flex;justify-content:center;align-items:center;gap:10px;min-height:50px;padding:12px 22px;border:1px solid transparent;border-radius:14px;background:var(--dk27-surface);color:var(--dk27-ink);font:inherit;font-size:15px;font-weight:650;line-height:1.3;text-decoration:none;cursor:pointer;transition:background .18s,box-shadow .18s,transform .18s}
.dk27-button svg{flex:none}.dk27-button:hover:not(:disabled){box-shadow:0 5px 18px #29134812;transform:translateY(-1px)}
.dk27-button.dk27-primary{background:var(--dk27-purple);color:#fff}.dk27-dark .dk27-primary{color:#201733}
.dk27-button:disabled{cursor:default;opacity:.32}.dk27-afisha button:focus-visible,.dk27-dialog button:focus-visible{outline:3px solid var(--dk27-purple);outline-offset:4px}
.dk27-calendar-button{min-width:260px;flex:none;box-shadow:0 12px 28px #6c50df25}
.dk27-toolbar{display:flex;gap:24px;align-items:center;justify-content:space-between;margin-bottom:28px}
.dk27-filters{display:flex;gap:10px;overflow-x:auto;padding:4px;max-width:100%;scrollbar-width:thin}.dk27-filters button{flex:none;text-transform:capitalize}.dk27-all{flex:none}
.dk27-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.dk27-card{display:flex;flex-direction:column;min-width:0;border-radius:24px;overflow:hidden;background:var(--dk27-surface);border:1px solid var(--dk27-line);box-shadow:0 10px 28px #31204409}
.dk27-poster-link{display:block;width:100%;padding:0;border:0;background:none;cursor:pointer;text-align:inherit;color:inherit}
.dk27-poster{position:relative;isolation:isolate;height:260px;overflow:hidden;background:linear-gradient(135deg,#ddd2e9,#ebe1d3)}
.dk27-poster .dk27-ambient{position:absolute!important;inset:-24px!important;width:calc(100% + 48px)!important;height:calc(100% + 48px)!important;max-width:none!important;object-fit:cover!important;filter:blur(28px) saturate(1.15);opacity:.7;pointer-events:none;z-index:0}
.dk27-poster .dk27-image{display:block!important;position:relative!important;width:100%!important;height:100%!important;object-fit:contain!important;object-position:center;z-index:1}
.dk27-age,.dk27-pushkin{position:absolute;top:16px;left:16px;z-index:2;border-radius:20px;padding:6px 10px;background:#fff;color:#292239;font-size:12px;font-weight:750}.dk27-pushkin{left:auto;right:12px;max-width:70%;background:#6c50df;color:#fff}
.dk27-noimage{height:100%;display:flex;align-items:center;justify-content:center;gap:10px;color:#51485f;text-align:center;padding:20px}
.dk27-card-body{display:flex;flex:1;flex-direction:column;gap:14px;padding:22px 24px 24px;min-height:216px}
.dk27-meta{display:flex;gap:12px;justify-content:space-between;align-items:baseline;color:var(--dk27-purple);font-size:18px;font-weight:750}.dk27-meta>span{font-size:14px;color:var(--dk27-sub)}
.dk27-card-title{font-size:22px!important;line-height:1.25!important;font-weight:750!important;margin:0!important;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.5em}
.dk27-card-title button{border:0;padding:0;text-align:left;background:none;color:inherit;font:inherit;cursor:pointer}
.dk27-venue{font-size:14px;color:var(--dk27-sub);margin:0;overflow-wrap:anywhere}
.dk27-card-footer{display:flex;gap:12px;justify-content:space-between;align-items:center;margin-top:auto}.dk27-card-footer strong{font-size:17px}.dk27-card-footer .dk27-button{padding:10px 0;min-height:44px;font-size:14px}
.dk27-pagination{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:28px;color:var(--dk27-sub);font-size:14px}.dk27-pagination p{margin:0}.dk27-arrows{display:flex;gap:12px}.dk27-icon-button{width:48px;min-width:48px;padding:10px}
.dk27-empty{padding:32px;color:var(--dk27-sub);text-align:center}.dk27-empty h4{color:var(--dk27-ink);font-size:22px;margin:18px 0}.dk27-empty>svg{margin:auto;width:34px;height:34px}.dk27-load-error{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 20px;border:1px solid var(--dk27-line);border-radius:14px;margin-bottom:24px}
.dk27-dialog{position:fixed;inset:0;width:min(1120px,calc(100vw - 40px));max-width:1120px;max-height:calc(100dvh - 40px);height:fit-content;margin:auto;padding:36px 40px;border:1px solid var(--dk27-line);border-radius:28px;background:var(--dk27-surface);box-shadow:0 28px 90px #160d3138;overflow:auto;overscroll-behavior:contain}
.dk27-dialog::backdrop{background:#18112680;backdrop-filter:blur(5px)}
.dk27-dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:30px}.dk27-dialog-heading h2{color:var(--dk27-ink);font-size:30px;font-weight:750;line-height:1.2;margin:0 0 10px}.dk27-dialog-heading p{color:var(--dk27-sub);margin:0;font-size:16px}
.dk27-calendar-layout{display:grid;grid-template-columns:minmax(0,.94fr) minmax(0,1fr);gap:36px;align-items:start}
.dk27-calendar{background:var(--dk27-paper);padding:22px;border-radius:22px;min-width:0}.dk27-month-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}.dk27-month-heading h3{font-size:22px;font-weight:750;text-transform:capitalize;line-height:1.3;margin:0;text-align:center}
.dk27-weekdays,.dk27-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.dk27-weekdays{font-size:12px;color:var(--dk27-sub);text-align:center;margin-bottom:18px;font-weight:650}.dk27-days{row-gap:14px}
.dk27-day,.dk27-day-empty{height:44px;min-width:0}.dk27-day{position:relative;border:1px solid transparent;border-radius:24px;background:none;color:var(--dk27-ink);font:inherit;font-size:16px;cursor:default;padding:0}.dk27-day:disabled{opacity:1;color:var(--dk27-sub)}.dk27-day.dk27-has-events{background:var(--dk27-soft);color:var(--dk27-purple);font-weight:750;cursor:pointer}.dk27-day.dk27-selected{background:var(--dk27-purple);color:#fff}.dk27-dark .dk27-day.dk27-selected{color:#211632}.dk27-day.dk27-today{border-color:var(--dk27-purple)}.dk27-day small{position:absolute;font-size:9px;right:2px;top:0;border-radius:10px;background:var(--dk27-surface);color:var(--dk27-purple);padding:1px 4px;border:1px solid var(--dk27-line)}
.dk27-legend{font-size:12px;color:var(--dk27-purple);margin:24px 0 0}.dk27-legend span{padding-right:7px}
.dk27-preview{min-width:0;max-height:580px;overflow:auto;overscroll-behavior:contain;padding:0 6px 6px 0}.dk27-selected-date{font-size:12px;font-weight:750;text-transform:uppercase;color:var(--dk27-purple);margin:0 0 18px}.dk27-preview-event+.dk27-preview-event{border-top:1px solid var(--dk27-line);margin-top:26px;padding-top:26px}
.dk27-preview .dk27-poster{height:224px;border-radius:18px}.dk27-preview-event h4{font-size:26px;line-height:1.2;margin:22px 0;color:var(--dk27-ink);font-weight:750;overflow-wrap:anywhere}.dk27-preview-meta{font-size:15px;color:var(--dk27-purple);font-weight:650}.dk27-preview-copy{font-size:16px;color:var(--dk27-sub);line-height:1.6;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;margin:16px 0}.dk27-preview-event .dk27-button{margin-top:6px}
@media(prefers-reduced-motion:reduce){.dk27-button{transition:none}.dk27-button:hover:not(:disabled){transform:none}}
@media(forced-colors:active){.dk27-card,.dk27-button,.dk27-calendar,.dk27-day.dk27-has-events{border:1px solid ButtonText}.dk27-day.dk27-selected{outline:3px solid Highlight}}
/* Respect the site's existing accessibility colour and typography controls. */
body.dk-low-vision .dk27-afisha,body.dk-low-vision .dk27-dialog{--dk27-ink:var(--dk-lv-text);--dk27-sub:var(--dk-lv-text);--dk27-paper:var(--dk-lv-bg);--dk27-surface:var(--dk-lv-bg);--dk27-line:var(--dk-lv-border);--dk27-purple:var(--dk-lv-text);--dk27-soft:var(--dk-lv-bg);background:var(--dk-lv-bg)!important;color:var(--dk-lv-text)!important;font-size:inherit}
body.dk-low-vision .dk27-button,body.dk-low-vision .dk27-day.dk27-has-events{border:2px solid var(--dk-lv-border)!important;background:var(--dk-lv-bg)!important;color:var(--dk-lv-text)!important}
body.dk-low-vision .dk27-button.dk27-primary,body.dk-low-vision .dk27-day.dk27-selected{background:var(--dk-lv-text)!important;color:var(--dk-lv-bg)!important}
body.dk-low-vision .dk27-card-title,body.dk-low-vision .dk27-preview-copy{display:block!important;overflow:visible!important;-webkit-line-clamp:unset!important;min-height:0}
body.dk-low-vision .dk27-day{min-height:52px;height:auto}body.dk-low-vision .dk27-calendar-layout{grid-template-columns:1fr}body.dk-low-vision .dk27-preview{max-height:none;overflow:visible}


/* v28 compact horizontal cards: desktop rows stay small at laptop sizes. */
.dk27-afisha{padding:28px 0}
.dk27-container{width:min(1280px,100%);padding:0 24px}
.dk27-heading{gap:20px;margin-bottom:16px}
.dk27-heading h2{font-size:28px;line-height:1.15;margin:5px 0 7px}
.dk27-eyebrow{font-size:10px;letter-spacing:.08em}
.dk27-intro{font-size:13px}
.dk27-button{min-height:36px;padding:8px 12px;border-radius:9px;font-size:12px;gap:6px}
.dk27-button svg{width:16px;height:16px}
.dk27-calendar-button{min-width:0;box-shadow:0 4px 12px #6c50df20}
.dk27-toolbar{gap:14px;margin-bottom:14px}
.dk27-filters{gap:6px;padding:2px}.dk27-filters .dk27-button{min-height:32px;padding:7px 12px}
.dk27-grid{gap:12px;align-items:stretch}
.dk27-card{display:grid;grid-template-columns:36% minmax(0,1fr);flex-direction:initial;border-radius:13px;min-height:190px;box-shadow:0 3px 12px #31204408}
.dk27-card .dk27-poster-link{height:100%;min-height:190px;position:relative;min-width:0}
.dk27-card .dk27-poster{position:absolute;inset:0;height:100%;width:100%}
.dk27-age{top:6px;left:6px;padding:3px 6px;font-size:10px}
.dk27-pushkin{top:auto;bottom:6px;left:5px;right:5px;max-width:none;text-align:center;font-size:9px;padding:4px;border-radius:6px}
.dk27-card-body{min-height:0;min-width:0;padding:12px;gap:9px}
.dk27-meta{gap:6px;font-size:13px;flex-wrap:wrap}.dk27-meta>span{font-size:11px}
.dk27-card-title{font-size:14px!important;line-height:1.3!important;min-height:0;-webkit-line-clamp:3}
.dk27-venue{font-size:11px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dk27-card-footer{gap:5px;flex-wrap:wrap}.dk27-card-footer strong{font-size:12px}.dk27-card-footer .dk27-button{font-size:11px;min-height:28px;padding:4px 0;gap:2px}.dk27-card-footer svg{width:13px;height:13px}
.dk27-pagination{margin-top:12px;font-size:11px;gap:10px}.dk27-arrows{gap:6px}.dk27-icon-button{width:34px;min-width:34px;min-height:34px;padding:7px}
.dk27-noimage{padding:8px;font-size:11px;flex-direction:column}
.dk27-dialog{box-sizing:border-box;width:min(960px,calc(100vw - 32px));max-width:960px;min-height:0;height:fit-content;max-height:calc(100dvh - 32px);padding:22px;border-radius:18px}
.dk27-dialog-heading{margin-bottom:18px;gap:12px}.dk27-dialog-heading h2{font-size:22px;margin:0 0 6px}.dk27-dialog-heading p{font-size:12px}
.dk27-calendar-layout{grid-template-columns:minmax(260px,.85fr) minmax(0,1.15fr);gap:24px}
.dk27-calendar{padding:14px;border-radius:12px}.dk27-month-heading{gap:6px;margin-bottom:14px}.dk27-month-heading h3{font-size:16px}
.dk27-weekdays{margin-bottom:10px;font-size:10px}.dk27-days{gap:5px}.dk27-day,.dk27-day-empty{height:34px}.dk27-day{font-size:13px}.dk27-legend{margin-top:14px;font-size:11px}
.dk27-preview{max-height:none;overflow:visible;padding:0}.dk27-selected-date{font-size:10px;margin-bottom:10px}.dk27-preview .dk27-poster{height:clamp(210px,42dvh,420px);border-radius:12px}
.dk27-preview-event h4{font-size:18px;margin:12px 0 8px;line-height:1.25}.dk27-preview-meta{font-size:12px;margin:8px 0}.dk27-preview-copy{font-size:13px;line-height:1.45;margin:10px 0;-webkit-line-clamp:3}
.dk27-preview-event+.dk27-preview-event{margin-top:16px;padding-top:16px}
@media(max-width:1000px){.dk27-container{padding:0 20px}.dk27-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dk27-card{min-height:180px}.dk27-card .dk27-poster-link{min-height:180px}}
@media(max-width:600px){.dk27-container{padding:0 14px}.dk27-afisha{padding:22px 0}.dk27-heading{flex-wrap:wrap;gap:12px}.dk27-heading h2{font-size:24px}.dk27-intro{font-size:12px}.dk27-toolbar{gap:8px;flex-wrap:wrap}.dk27-grid{grid-template-columns:minmax(0,1fr);gap:10px}.dk27-card{grid-template-columns:32% minmax(0,1fr);min-height:170px}.dk27-card .dk27-poster-link{min-height:170px}.dk27-card-body{padding:12px 14px}.dk27-card-title{font-size:15px!important}.dk27-card-footer .dk27-button{min-height:36px;font-size:12px}.dk27-button{min-height:40px}.dk27-filters .dk27-button{min-height:38px}.dk27-icon-button{width:40px;min-width:40px;min-height:40px}.dk27-dialog{padding:16px;width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}.dk27-dialog-heading h2{font-size:20px}.dk27-calendar-layout{grid-template-columns:1fr;gap:16px}.dk27-calendar{width:100%;max-width:380px;margin:auto}.dk27-day,.dk27-day-empty{height:38px}.dk27-preview{max-height:none;overflow:visible;padding:0}.dk27-preview .dk27-poster{height:clamp(220px,42dvh,360px)}}
body.dk-low-vision .dk27-card{min-height:0;grid-template-columns:1fr}
body.dk-low-vision .dk27-card .dk27-poster-link{min-height:180px}
body.dk-low-vision .dk27-venue{display:block;overflow:visible}
body.dk-low-vision .dk27-day{min-height:52px;height:auto}
body.dk-low-vision .dk27-calendar-layout{grid-template-columns:1fr}
body.dk-low-vision .dk27-preview{max-height:none;overflow:visible}

/* Single scrolling surface; dialog follows content instead of filling the viewport. */
@media(max-width:740px){.dk27-calendar-layout{grid-template-columns:1fr;gap:18px}.dk27-calendar{max-width:400px;width:100%;margin:auto}.dk27-preview .dk27-poster{height:clamp(220px,42dvh,360px)}}
@media(min-width:741px) and (max-height:650px){.dk27-dialog{padding:16px}.dk27-dialog-heading{margin-bottom:12px}.dk27-preview .dk27-poster{height:clamp(170px,36dvh,240px)}.dk27-preview-event h4{margin-top:10px}.dk27-calendar{padding:12px}}
body.dk-low-vision .dk27-calendar-layout{grid-template-columns:1fr}

/* v30: a small ambient border on every side, regardless of poster aspect ratio. */
.dk27-poster .dk27-image{padding:8px!important;box-sizing:border-box!important}
.dk27-preview .dk27-image{padding:10px!important}
.dk27-card{height:190px}
.dk27-card-body{height:100%;overflow:hidden;gap:6px}
.dk27-meta,.dk27-card-title,.dk27-venue,.dk27-card-footer{flex-shrink:0}
.dk27-venue{-webkit-line-clamp:1}
.dk27-card-description{font-size:11px;line-height:1.4;color:var(--dk27-sub);margin:0;min-height:0;flex:1;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}
@media(max-width:1000px){.dk27-card{height:180px}}
@media(max-width:600px){.dk27-card{height:170px}.dk27-card-body{gap:5px}.dk27-card-title{-webkit-line-clamp:2}}
body.dk-low-vision .dk27-card{height:auto}
body.dk-low-vision .dk27-card-body{height:auto;overflow:visible}
body.dk-low-vision .dk27-card-description{flex:none;display:block;overflow:visible;-webkit-line-clamp:unset}

/* v33: large cards keep the poster on the left and text on the right. */
.dk27-large-cards .dk27-card{height:392px;grid-template-columns:46% minmax(0,1fr);grid-template-rows:minmax(0,1fr)}
.dk27-large-cards .dk27-card .dk27-poster-link{min-height:0}
.dk27-large-cards .dk27-card-body{min-height:0;padding:14px;gap:10px}
.dk27-large-cards .dk27-card-title{font-size:15px!important;-webkit-line-clamp:4}
.dk27-large-cards .dk27-card-description{font-size:12px;line-height:1.5;-webkit-line-clamp:9}
.dk27-large-cards .dk27-venue{-webkit-line-clamp:2}
.dk27-large-cards .dk27-card-footer{gap:6px}
@media(max-width:1000px){.dk27-large-cards .dk27-card{height:372px}}
@media(max-width:600px){.dk27-large-cards .dk27-card{height:350px;grid-template-columns:44% minmax(0,1fr)}.dk27-large-cards .dk27-card-body{padding:12px;gap:8px}.dk27-large-cards .dk27-card-title{font-size:14px!important}.dk27-large-cards .dk27-card-description{-webkit-line-clamp:7}}
body.dk-low-vision .dk27-large-cards .dk27-card{height:auto;grid-template-columns:1fr;grid-template-rows:180px auto}
body.dk-low-vision .dk27-large-cards .dk27-card-description{-webkit-line-clamp:unset}
