/* BOOK: "Signal" theme. Dark green theatre, glass form panel, ON AIR neon sign (glass tubes) that warms up as the form fills.
   Designed at 390 first. Loads after system.css; overrides only inside body.page-book. */
body.page-book{--paper:var(--th-bg);--ink:var(--th-text);--mute:var(--th-mute);--rule:rgba(255,255,255,.16);--card:var(--th-bg2);--green:#C9F25C;--green-d:#DDF78E;
  --tube:#FF3B2F;--tube-hot:#FFE2D2;--tube-deep:#7A1710;--err:#FFB9B0;
  background:var(--th-bg);color:var(--th-text);--m:120px}
@media (max-width:1100px){body.page-book{--m:48px}}
@media (max-width:760px){body.page-book{--m:20px}}
body.page-book .top{background:#0B2A1E;border-bottom-color:rgba(255,255,255,.12)}
body.page-book .mark{background:#C9F25C}
body.page-book .btn{color:var(--th-accent-ink)}
body.page-book .btn.line{color:var(--th-text);border-color:rgba(244,248,245,.7);background:transparent}
body.page-book .btn.line:hover{background:var(--th-text);color:var(--th-bg)}
body.page-book .btn:hover{background:#DDF78E;border-color:#DDF78E;color:var(--th-accent-ink)}
body.page-book .nav a.book{color:var(--th-accent-ink)}
body.page-book .nav a:hover{background:rgba(255,255,255,.1)}
body.page-book .menu-btn,body.page-book .top-r a.pl{color:var(--th-text)}
body.page-book .nav a[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--th-sig)}
body.page-book .foot{background:#06140D;color:var(--th-text);border-top:1px solid rgba(255,255,255,.12)}
body.page-book .foot a{color:var(--th-text)}
body.page-book .sticky{display:none!important}
body.page-book.has-sticky{padding-bottom:0!important}
body.page-book.has-sticky .foot{padding-bottom:var(--sp-6)}
body.page-book .txt-link{color:var(--th-accent)}

/* ---------- stage ---------- */
.bk{--blob:min(95vw,640px);padding:calc(64px + var(--sp-4)) 0 var(--sp-6);border:0;overflow:clip}
.bk-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-3)}
.bk-l{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}
.bk h1{margin:0;font-size:var(--h1);line-height:1.04;letter-spacing:-.02em;max-width:9em;color:var(--th-text)}
.bk h1 em{color:var(--th-sig);font-style:normal}
.bk-mail{margin:0;color:var(--th-mute);font-size:var(--fs-small)}
.bk-mail a{color:var(--th-text);font-weight:600;text-underline-offset:3px;overflow-wrap:anywhere}

/* one-tap call: the biggest thing on the page after the headline, always above the fold at 390 */
.bk-call{display:flex;align-items:center;gap:14px;min-height:72px;padding:10px 18px 10px 12px;border-radius:999px;background:var(--th-accent);color:var(--th-accent-ink);text-decoration:none;
  box-shadow:0 0 0 1px rgba(255,255,255,.35) inset,0 12px 30px -12px rgba(201,242,92,.6);transition:transform .18s,background .18s}
.bk-call:hover{background:#DDF78E;transform:translateY(-2px)}
.bk-call:focus-visible,.bkf .f :is(input,select,textarea):focus-visible,.bkf .go:focus-visible{outline:3px solid #fff;outline-offset:3px}
.bk-call .ic{flex:none;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#0B2216;color:var(--th-accent)}
.bk-call .ic svg{width:24px;height:24px}
.bk-call small{display:block;font:600 14px/1.2 var(--font-text);color:#0B2216}
.bk-call b{display:block;font:700 26px/1.1 var(--font-display);letter-spacing:0;color:#0B2216;font-variant-numeric:lining-nums tabular-nums}

/* ---------- ON AIR sign ---------- */
.bk-sign{position:relative;width:100%;max-width:560px;margin:calc(var(--sp-3) * -1) auto calc(var(--sp-4) * -1);aspect-ratio:492/242;contain:layout paint}
.bk-sign svg,.bk-sign canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.bk-sign canvas{touch-action:pan-y;opacity:0;transition:opacity .5s}
.bk-sign.gl canvas{opacity:1}
.bk-sign.gl-done svg{visibility:hidden}
/* SVG sign = the instant poster, the no-WebGL fallback and the reduced-motion still. Each tube group has --l (0 off .. 1 lit) */
.sg .tb{--l:0}
.sg .tb path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.sg .tb-halo path{stroke:var(--tube);stroke-width:20;opacity:calc(var(--l) * .62)}
.sg .tb-glass path{stroke:#BFD8CC;stroke-width:9.2;opacity:.2}
.sg .tb-gas path{stroke:color-mix(in srgb,var(--tube) calc(var(--l) * 100%),#4A433F);stroke-width:6.2;opacity:calc(.5 + var(--l) * .5)}
.sg .tb-core path{stroke:var(--tube-hot);stroke-width:2.6;opacity:calc(var(--l) * var(--l))}
.sg .tb-spec path{stroke:#fff;stroke-width:1.3;opacity:.32}
.sg .sg-slab{filter:drop-shadow(0 18px 24px rgba(0,0,0,.55))}

/* ---------- glass form ---------- */
.bk-r{min-width:0;position:relative;isolation:isolate}
.bkf{display:grid;gap:var(--sp-4);padding:var(--panel-pad);border-radius:var(--panel-r);box-shadow:var(--glass-hi),var(--glass-shadow);position:relative}
.bkf .panel-k{margin:0;color:var(--th-accent);opacity:1}
.bkf .f{display:block}
.bkf .f label{display:block;font:600 16px/1.2 var(--font-text);margin:0 0 8px;color:var(--glass-text)}
.bkf .f label small,.bkf legend small{font-weight:500;font-size:14px;color:var(--glass-mute)}
.bkf .f input,.bkf .f select,.bkf .f textarea{width:100%;min-height:54px;padding:12px 14px;border:2px solid rgba(244,248,245,.55);border-radius:12px;background:rgba(5,22,14,.82);color:var(--th-text);font:400 18px/1.3 var(--font-text);caret-color:var(--th-accent);transition:border-color .15s,box-shadow .15s}
.bkf .f textarea{min-height:92px;resize:vertical}
.bkf .f select{appearance:none;-webkit-appearance:none;padding-right:44px;background-image:linear-gradient(45deg,transparent 50%,#C9F25C 50%),linear-gradient(135deg,#C9F25C 50%,transparent 50%);background-position:calc(100% - 22px) 50%,calc(100% - 16px) 50%;background-size:6px 6px;background-repeat:no-repeat}
.bkf .f select option{background:#0B2216;color:#F4F8F5}
.bkf .f :is(input,select,textarea):focus{border-color:var(--th-accent);box-shadow:0 0 0 4px rgba(201,242,92,.22);outline:0}
.bkf .f.bad :is(input,select,textarea){border-color:var(--err)}
.bkf .f .em{display:none;margin-top:6px;font:600 14px/1.3 var(--font-text);color:var(--err)}
.bkf .f.bad .em{display:block}
.bkf .go{min-height:64px;width:100%;font-size:21px;border-radius:999px;background:var(--th-accent);border-color:var(--th-accent);color:var(--th-accent-ink);box-shadow:0 14px 34px -14px rgba(201,242,92,.7)}
.bkf .go .sp{border-color:rgba(11,34,22,.3);border-top-color:#0B2216}
.bkf .fine{margin:0;line-height:1.5;color:var(--glass-mute);font-size:var(--fs-small)}
.bkf .status{margin:0;color:var(--glass-text)}
.bkf .status.err{color:#FFD9D4;background:rgba(122,23,16,.55);border:2px solid var(--err);border-radius:12px;padding:12px 14px}
.bkf .sent .tick{background:var(--th-accent);color:#0B2216}
.bkf .sent h2{color:var(--glass-text);font-size:var(--h2);line-height:1.05}
.bkf .sent p{color:var(--glass-mute)}
.bkf .sent .btn.line{color:var(--th-text)}
/* optional-fields disclosure: name + email + send it stay the only visible fields by default */
.bkf .optional-group{display:block}
.bkf .optional-group summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;min-height:44px;padding:4px 2px;font:600 15px/1.2 var(--font-text);color:var(--th-accent);-webkit-tap-highlight-color:transparent}
.bkf .optional-group summary::-webkit-details-marker{display:none}
.bkf .optional-group summary small{font-weight:500;font-size:14px;color:var(--glass-mute)}
.bkf .optional-group summary::before{content:"+";flex:0 0 auto;width:20px;height:20px;line-height:19px;text-align:center;border:2px solid var(--th-accent);border-radius:999px;font-size:16px;transition:transform .2s}
.bkf .optional-group[open] summary::before{transform:rotate(45deg)}
.bkf .optional-group .opt-body{display:grid;gap:var(--sp-4);margin-top:var(--sp-3)}
@media (prefers-reduced-motion:reduce){.bkf .optional-group summary::before{transition:none}}

/* ---------- after the form ---------- */
.bk-after{padding:var(--sp-7) 0 var(--sp-8);background:linear-gradient(to bottom,var(--th-bg),var(--th-bg2));position:relative}
.bk-steps{position:relative;isolation:isolate}
.bk-steps .panel-h{font-size:var(--h3)}
.bk-frames{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3);margin-top:var(--sp-6)}
.bk-frames img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:16px;border:1px solid rgba(255,255,255,.18);background:#0B2216}

/* ---------- wider ---------- */
@media (min-width:768px){
  .bk{padding-top:calc(72px + var(--sp-6))}
  .bk-frames{grid-template-columns:repeat(4,1fr);gap:var(--sp-4)}
}
@media (min-width:1000px){
  .bk{padding-top:calc(72px + var(--sp-5))}
  .bk-call{max-width:460px}
  .bkf{gap:var(--sp-3)}
  .bkf .f textarea{min-height:76px}
  .bkf .f label{margin-bottom:6px}
  .bk-grid{grid-template-columns:minmax(0,1fr) minmax(0,520px);gap:var(--sp-7);align-items:start}
  .bk-l{gap:var(--sp-4)}
  .bk-sign{margin:var(--sp-2) 0 0;max-width:600px}
  .bk-r{position:sticky;top:96px}
}
@media (max-width:420px){.bk-sign{margin-top:-18px;margin-bottom:-22px}}
@media (prefers-reduced-motion:reduce){.bk-call,.bkf .f :is(input,select,textarea){transition:none}.bk-sign canvas{transition:none}}
html.lite .bk-sign canvas{display:none}
