/* WordPress additions to the prototype styles (ofd.css). Black and white only. */
.o [hidden]{display:none !important}
:where(.o) a{color:inherit;text-decoration:none}
:where(.o) a:where(.b,.ln,.nb,.mi,.ic,.sq,.chip2){cursor:pointer}
.admin-bar .hd{top:32px}
@media (max-width:782px){.admin-bar .hd{top:46px}}
/* Editor content of news (block editor) in the article column. */
.o .art-tx :where(a){text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:1px}
.o .art-tx :where(ul,ol){margin:0 0 1.2em;padding-left:1.2em}
.o .art-tx :where(figure,.wp-block-image){margin:2em 0}
.o .art-tx :where(img){height:auto}
.o .art-tx :where(figcaption){font-size:13.5px;line-height:1.6;color:var(--ink2);margin-top:10px}
.o .art-tx :where(blockquote){margin:2em 0;padding-left:24px;border-left:1px solid var(--ink)}
.o .art-tx :where(h2,h3){font-weight:700;letter-spacing:-.02em;line-height:1.2;margin:1.6em 0 .6em}
/* Pagination of lists. */
.o .pgn{display:flex;flex-wrap:wrap;gap:8px;margin-top:56px}
.o .pgn :is(a,span){display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:42px;padding:0 12px;border:1px solid var(--line);font:600 11px/1 var(--f);letter-spacing:.2em}
.o .pgn .current{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.o .pgn a:hover{border-color:var(--ink)}
/* Contact Form 7 messages in the prototype's black and white. */
.o .wpcf7-not-valid-tip{display:inline-block;margin-top:6px;padding:4px 8px;background:var(--ink);color:var(--paper);font-size:12px}
.o .wpcf7-response-output{margin:18px 0 0;padding:12px 16px;border:1px solid var(--ink)}
.o .wpcf7-spinner{display:none}
.o .screen-reader-response{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
/* Countdown phases are wrappers only: the prototype's layout applies to their content. */
.o .ad-c > [data-cd-phase]{display:contents}
/* Contact Form 7 controls in the prototype's look: chips (roles, formats, choices), day checks, consent. */
.o .wpcf7 .wpcf7-form-control-wrap{display:block}
.o .wpcf7 .chips2 .wpcf7-list-item,.o .wpcf7 .checks2 .wpcf7-list-item,.o .cons2-w .wpcf7-list-item{margin:0}
.o .wpcf7 .chips2 label{position:relative;display:inline-flex;align-items:center;min-height:42px;padding:0 18px;border:1px solid var(--line);font:600 10.5px/1 var(--f);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:border-color .3s var(--e),background-color .3s var(--e),color .3s var(--e)}
.o .wpcf7 .chips2 label:hover{border-color:var(--ink)}
.o .wpcf7 .chips2 input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.o .wpcf7 .chips2 label:has(input:checked){background:var(--ink);border-color:var(--ink);color:var(--paper)}
.o .wpcf7 .chips2 label:has(input:focus-visible){outline:2px solid currentColor;outline-offset:4px}
.o .wpcf7 .checks2 label{display:flex;align-items:center;gap:12px;min-height:50px;padding:0 18px;border:1px solid var(--line);cursor:pointer;font-size:14.5px;font-weight:500}
.o .wpcf7 .checks2 input,.o .cons2-w input{accent-color:#0A0A0A;width:18px;height:18px;margin:0;flex:none}
.o .form2 .cons2-w{grid-column:1/-1}
.o .cons2-w label{display:flex;gap:12px;align-items:flex-start;font-size:13.5px;color:var(--ink2);cursor:pointer}
.o .cons2-w input{margin-top:3px}
.o .form2 .wpcf7-response-output,.o .form2 > .hidden-fields-container{grid-column:1/-1}
.o .wpcf7 .lnf,.o .lnf.wpcf7-form{display:flex;gap:12px;align-items:flex-end}
.o .wpcf7 .lnf .wpcf7-form-control-wrap{flex:1}
.o .form2 .hint{display:block;font-size:13.5px;color:var(--ink2)}
.o .fld input[type=file]{font:400 14px/1.4 var(--f);padding:12px 0}
/* Form wrappers (ours and Contact Form 7's) are transparent to the prototype's grid rules. */
.o [data-form-wrap],.o [data-form-wrap] > .wpcf7{display:contents}
/* Contact Form 7 wraps the partner form: the prototype's ".ppform-g > .form2" placement for the wrapped form. */
.ppform-g [data-form-wrap] .form2{grid-column:6/13;min-width:0}
@media (max-width:900px){.ppform-g [data-form-wrap] .form2{grid-column:1/-1;margin-top:40px}}
/* Pages built in the editor: ordinary blocks (text, images, columns) between OFD blocks sit in the page grid. */
.ofd-flow > :where(p,h1,h2,h3,h4,ul,ol,blockquote,figure,table,hr,.wp-block-columns,.wp-block-group,.wp-block-buttons,.wp-block-image,.wp-block-embed,.wp-block-gallery,.wp-block-video,.wp-block-quote,.wp-block-cover,.wp-block-media-text,.wp-block-separator,.wp-block-spacer,.wp-block-html){max-width:calc(1440px - 2*var(--gut));margin-left:0;margin-right:auto;padding-left:var(--gut);padding-right:var(--gut);box-sizing:content-box}
.ofd-flow > :where(p,ul,ol){max-width:44rem;font:400 clamp(16px,1.15vw,18px)/1.7 var(--f);margin-top:1.2em;margin-bottom:1.2em}
.ofd-flow > :where(h2,h3){font:800 clamp(24px,2.4vw,40px)/1.1 var(--f);text-transform:uppercase;letter-spacing:-.01em;margin-top:2em;margin-bottom:.6em}
.ofd-flow > .wp-block-image img,.ofd-flow > figure img{height:auto;max-width:100%;object-fit:contain}
/* Guest registration with tickets. */
.tk-w{padding-top:40px;padding-bottom:96px;max-width:960px}
.tk-f .full,.tk-fs{grid-column:1/-1}
.tk-f fieldset{border:0;margin:0;padding:0;min-width:0}.tk-f legend{padding:0;margin-bottom:10px}
.tk-items{list-style:none;margin:8px 0 0;padding:0;border-top:1px solid var(--ink)}
.tk-i label{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:4px 18px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);cursor:pointer}
.tk-i input{accent-color:#0A0A0A;width:18px;height:18px;margin:0}
.tk-t{display:flex;flex-direction:column;gap:4px;min-width:0}
.tk-d{font:600 11px/1.3 var(--f);letter-spacing:.16em;text-transform:uppercase;color:var(--ink2)}
.tk-n{font:800 clamp(18px,1.6vw,24px)/1.15 var(--f);text-transform:uppercase;letter-spacing:-.005em;overflow-wrap:anywhere}
.tk-v{font:400 14px/1.4 var(--f);color:var(--ink2)}
.tk-s{font:600 11px/1.3 var(--f);letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--ink);padding:6px 10px;white-space:nowrap}
.tk-i.is-full label{cursor:not-allowed;opacity:.5}
.tk-cats .chip2 input{position:absolute;opacity:0;width:1px;height:1px}
.tk-cats .chip2:has(input:checked){background:var(--ink);color:#fff}
.tk-cats .chip2:has(input:focus-visible){outline:2px solid var(--ink);outline-offset:2px}
.tk-cons{display:flex;gap:12px;align-items:flex-start;font:400 14px/1.5 var(--f)}
.tk-cons input{accent-color:#0A0A0A;width:18px;height:18px;margin:2px 0 0;flex:none}
.tk-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.tk-msg{font:600 16px/1.5 var(--f);padding:16px 20px;border:1px solid var(--ink);margin:0 0 24px}
.tk-msg.is-ok{background:var(--ink);color:#fff}
.tk-none{font:400 18px/1.6 var(--f);color:var(--ink2);padding:24px 0}
.tk-links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:12px 24px}
/* Ticket page. */
.tkp{padding-top:calc(var(--hdh) + 48px);padding-bottom:96px}
.tkp-c{max-width:560px}
.tkp-t{margin:10px 0 14px;overflow-wrap:anywhere}
.tkp-w{font:400 18px/1.5 var(--f);margin:0 0 18px}
.tkp-st{display:inline-block;font:700 12px/1 var(--f);letter-spacing:.16em;text-transform:uppercase;border:1px solid var(--ink);padding:10px 14px;margin:0 0 24px}
.tkp-st.is-valid{background:var(--ink);color:#fff}
.tkp-st.is-cancelled,.tkp-st.is-used{text-decoration:line-through}
.tkp-qr{margin:0 0 24px;border:1px solid var(--line);padding:16px;display:inline-block;background:#fff}
.tkp-qr img{display:block;width:min(330px,72vw);height:auto;image-rendering:pixelated}
.tkp-qr figcaption{font:400 13px/1.4 var(--f);color:var(--ink2);margin-top:10px;max-width:330px}
.tkp-d{display:grid;gap:14px;margin:0 0 28px}
.tkp-d dd{margin:4px 0 0;font:500 17px/1.4 var(--f)}
/* Check-in screen. */
.ck-body{margin:0;background:#0A0A0A;color:#fff;min-height:100vh}
.ck{max-width:640px;margin:0 auto;padding:16px 16px 48px;font-family:var(--f)}
.ck-h{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-bottom:14px;color:#fff}
.ck-h .lab{color:#bdbdbd}.ck-h b{color:#fff}
.ck-lg{height:28px;width:auto;fill:#fff;color:#fff}
.ck-n{margin-left:auto}
.ck-cam{position:relative;aspect-ratio:1/1;background:#1b1b1b;border:1px solid #3a3a3a;display:flex;align-items:center;justify-content:center;overflow:hidden}
.ck-cam video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.ck-on{position:relative;z-index:1}
.ck-hint{position:absolute;bottom:10px;left:0;right:0;text-align:center;font:500 13px/1.4 var(--f);color:#bdbdbd;margin:0;z-index:1}
.ck-r{margin:14px 0;padding:20px;border:2px solid #fff}
.ck-r.is-ok{background:#fff;color:#0A0A0A}
.ck-r.is-no{background:#0A0A0A;color:#fff}
.ck-big{font:800 clamp(26px,7vw,40px)/1.05 var(--f);text-transform:uppercase;margin:0 0 12px}
.ck-name{font:700 22px/1.3 var(--f);margin:0 0 6px}
.ck-meta{font:400 15px/1.45 var(--f);margin:0 0 4px}
.ck-acts{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:16px}
.ck-r.is-no .b-white{border-color:#fff}
.ck-s{margin:14px 0 8px}.ck .ck-s input.in{width:100%;min-height:48px;background:#fff;color:#0A0A0A;padding:0 12px;border:0}
.ck-list{list-style:none;margin:0;padding:0}
.ck-lb{display:grid;width:100%;text-align:left;gap:2px;padding:12px 0;background:none;border:0;border-bottom:1px solid #3a3a3a;color:#fff;font:inherit;cursor:pointer}
.ck-ln{font-weight:700}.ck-lm{font-size:14px;color:#bdbdbd}.ck-ls{color:#bdbdbd}
.ck-x{padding:40px 16px;font:600 18px/1.5 var(--f)}
.o.ck{background:transparent;color:#fff}
@media (max-width:600px){.tk-i label{grid-template-columns:22px minmax(0,1fr)}.tk-s{grid-column:2;justify-self:start}.tk-n{overflow-wrap:break-word}}

/* Partners: lead under the heading, names linked to their sites */
.pth-l{max-width:46em;margin:20px 0 32px;color:var(--ink2)}
a.ptn{color:inherit;text-decoration:none}
a.ptn:hover,a.ptn:focus-visible{text-decoration:underline;text-underline-offset:.12em;text-decoration-thickness:1px}

/* The site's own Contact Form 7 forms placed in pages (e.g. «Всі питання» on «Про нас»):
   the OFD look without the old WPBakery grid. The registration forms of OFD (id ofd-f-…) keep theirs. */
.wpcf7 form:not([id^="ofd-f"]){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 28px;max-width:880px;margin:24px 0}
.wpcf7 form:not([id^="ofd-f"]) > *{grid-column:1/-1;min-width:0}
.wpcf7 form:not([id^="ofd-f"]) > .vc_col-lg-6,.wpcf7 form:not([id^="ofd-f"]) > .vc_col-sm-6,.wpcf7 form:not([id^="ofd-f"]) > .vc_col-md-6{grid-column:auto}
.wpcf7 form:not([id^="ofd-f"]) label{display:block;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink2)}
.wpcf7 form:not([id^="ofd-f"]) :is(input[type=text],input[type=email],input[type=tel],input[type=url],input[type=number],input[type=date],select,textarea){display:block;width:100%;margin-top:8px;padding:12px 0;border:0;border-bottom:1px solid var(--ink);border-radius:0;background:transparent;font:inherit;font-size:16px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--ink)}
.wpcf7 form:not([id^="ofd-f"]) textarea{min-height:120px;resize:vertical}
.wpcf7 form:not([id^="ofd-f"]) :is(input,select,textarea):focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.wpcf7 form:not([id^="ofd-f"]) :is(input[type=submit],button[type=submit]){justify-self:start;padding:17px 30px;border:0;border-radius:0;background:var(--ink);color:#fff;font:inherit;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;cursor:pointer}
.wpcf7 form:not([id^="ofd-f"]) .wpcf7-not-valid-tip{margin-top:6px;font-size:12px;color:var(--ink)}
.wpcf7 form:not([id^="ofd-f"]) .wpcf7-response-output{grid-column:1/-1;margin:0;padding:12px 16px;border:1px solid var(--ink)}
.wpcf7 form:not([id^="ofd-f"]) .wpcf7-spinner{display:none}
@media (max-width:640px){.wpcf7 form:not([id^="ofd-f"]){grid-template-columns:1fr}}

/* Cabinet: the guest's tickets, one card each with its QR code (the one scanned at the door) */
.cab-tks{display:flex;flex-direction:column;gap:18px}
.cab-tks > .d3{margin-bottom:4px}
.cab-tk{position:static}
.cab-tk .cab-tkt{margin-top:18px;font-size:clamp(26px,2.6vw,38px);line-height:.95;overflow-wrap:anywhere}
.cab-qr{width:220px;max-width:100%;height:auto;aspect-ratio:1;background:#fff;padding:10px;image-rendering:pixelated}
.cab-tk.is-used .cab-qr{opacity:.35}
.cab-tka{display:flex;flex-wrap:wrap;gap:8px 22px}
.cab-tka .ln{color:var(--nink)}
/* After the registration: keep the tickets in the cabinet */
.tk-save{margin-top:32px;padding:28px 30px;border:1px solid var(--ink)}
.tk-save .d3{margin-bottom:8px}
.tk-savef{margin-top:18px;grid-template-columns:minmax(0,1fr) auto;align-items:end;max-width:640px}
@media (max-width:640px){.tk-savef{grid-template-columns:minmax(0,1fr)}}
.tk-x{border:0;margin:0;padding:18px 0 0;min-width:0;border-top:1px solid var(--line)}.tk-x legend{padding:0;margin-bottom:10px}
.tk-xf{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px}
@media (max-width:640px){.tk-xf{grid-template-columns:minmax(0,1fr)}}
.tk-nf{margin-top:8px;max-width:640px}.tk-nf>p{font:400 16px/1.6 var(--f);margin:0 0 14px}
.tkp-n{font:400 15px/1.55 var(--f);color:var(--ink2);margin:0 0 24px;max-width:520px}
.tk-l{font:600 13px/1.5 var(--f);letter-spacing:.02em;text-transform:uppercase;overflow-wrap:anywhere}
.tk-note{font:400 14px/1.6 var(--f);color:var(--ink2);margin:16px 0 0;padding:14px 0 0;border-top:1px solid var(--line);max-width:760px}
