/* impulssum: styles that are NOT in prototype v9.12.13. Everything taken from the prototype lives in
   site.css; this file holds only what was added on request, so it stays easy to see and review.
   Colours and sizes reuse the prototype's own tokens and its lightbox (.lbox) look. */

/* ---- theater video player (decision 14 Oct 2026) ---- */
.vmodal{position:fixed;inset:0;background:rgba(10,20,32,.9);z-index:400;display:none;place-items:center;padding:34px}
.vmodal.open{display:grid}
.vmodal-box{position:relative;width:min(1100px,92vw,calc((90vh - 60px) * 16 / 9))}
.vmodal-frame{position:relative;aspect-ratio:16/9;background:#000;box-shadow:0 30px 70px -30px rgba(0,0,0,.8)}
.vmodal-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vmodal-x{position:absolute;top:-44px;right:0;background:none;border:0;color:#fff;font-size:2rem;cursor:pointer;line-height:1;padding:4px 6px}
.vmodal-x:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
@media(max-width:600px){.vmodal{padding:16px}.vmodal-x{top:-40px}}

/* ---- form status line (step 9): sent / not sent, under the contact form's button ---- */
.form-msg{margin:14px 0 0;font-size:.92rem;line-height:1.5}
.form-msg.ok{font-family:var(--display);font-weight:700;color:var(--navy);font-size:1.2rem;margin:0}
.form-msg.fail{color:var(--error)}

/* ---- Blog page: line shown until the LinkedIn feed plugin is chosen (15 Oct 2026) ---- */
.lipost-empty{grid-column:1/-1;color:var(--n500);margin:0}
.li-feed{grid-column:1/-1;min-height:200px}

/* ---- Privacy page (15 Oct 2026, on request): smaller type for the statement. Headings and text
   share one size; headings stay navy and bold. ---- */
#page-privacy .legal,#page-privacy .legal p,#page-privacy .legal p.intro,#page-privacy .legal li,
#page-privacy .ltable,#page-privacy .prow b,#page-privacy .prow span,#page-privacy .legal .card h4,
#page-privacy .legal .card p{font-size:.92rem;line-height:1.6}
#page-privacy .legal h2,#page-privacy .legal h3,#page-privacy .legal h4{font-size:.92rem;line-height:1.4;font-family:var(--display);font-weight:700;color:var(--navy);letter-spacing:0}
#page-privacy .legal h2{margin:26px 0 8px;padding-top:18px}
#page-privacy .prow{padding:12px 16px}

/* Videos page: YouTube gallery (step 11.4) */
.yt-gallery{min-height:200px}

/* Quick scans: "Email me the results" (19 Oct 2026). The confirmation takes the button's place.
   White with an orange outline and orange text, next to the solid orange Book button. Its own class:
   the results sit in a dark section, where .btn-ghost turns white. */
.btn-email,.bg-ink .btn-email,.bg-navy .btn-email{background:#fff;color:var(--orange-deep);border-color:var(--orange)}
.btn-email:hover,.bg-ink .btn-email:hover,.bg-navy .btn-email:hover{background:#FFF6F2;border-color:var(--orange-deep);color:var(--orange-deep);transform:translateY(-2px)}
.btn-email:disabled{opacity:.7;cursor:default;transform:none}
.r-email-msg{display:inline-flex;align-items:center;font-family:var(--display);font-weight:600;color:var(--navy);padding:0 4px}
.r-email-msg[hidden],#r-email[hidden]{display:none!important}
.r-email-msg.err{color:var(--orange-deep);font-weight:500;font-family:var(--body)}
