/*
 * NetPurl theme: toast, consultation modal, form fields. Prototype lines 93-94, 230-241, 252-255.
 * Extracted verbatim from the approved prototype (index.html <style>), original line numbers noted per file.
 */

.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:60;background:var(--ink);color:#fff;border-radius:16px;padding:12px 18px;font-size:14px;box-shadow:0 20px 40px -15px rgba(0,0,0,.45);max-width:min(560px,calc(100vw - 32px));display:flex;flex-direction:column;gap:2px}
.toast small{color:#AEB6C4;font-size:12.5px;font-family:ui-monospace,Menlo,monospace;word-break:break-all}
/* consultation modal */
.modal{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(15,24,45,.45);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fadeIn .25s}
.modal-card{width:min(520px,100%);max-height:calc(100vh - 32px);overflow-y:auto;background:#fff;border-radius:26px;padding:32px;box-shadow:0 40px 80px -30px rgba(0,0,0,.5);animation:modalIn .35s cubic-bezier(.2,.8,.2,1);position:relative}
@keyframes fadeIn{from{opacity:0}}
@keyframes modalIn{from{opacity:0;transform:translateY(20px) scale(.97)}}
.modal-x{position:absolute;inset-inline-end:16px;top:16px;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:20px;color:var(--ink)}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}
.fgrid .full{grid-column:1/-1}
.fld{display:flex;flex-direction:column;gap:6px;font-size:13.5px;font-weight:600;color:var(--ink)}
.fld input,.fld select,.fld textarea{font:inherit;font-weight:400;font-size:15px;padding:12px 14px;border:1px solid #D3DCEA;border-radius:12px;min-height:46px;background:#fff;color:var(--ink);transition:border-color .2s,box-shadow .2s}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 4px rgba(8,106,216,.12)}
@media (max-width:560px){.fgrid{grid-template-columns:1fr}.modal-card{padding:24px}}
.fgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
.fld{min-width:0}
.fld input,.fld select,.fld textarea{width:100%;box-sizing:border-box}
@media (max-width:560px){.fgrid{grid-template-columns:minmax(0,1fr)}}

/* Consultation modal note: explains that online requests are not switched on yet. */
#cf-note a{text-decoration:underline}
#cf-note:focus{outline:0}
#cf-note.is-attn{color:var(--ink);font-weight:600}

/* Shared closing call to action: heading on the left, contact and buttons in their own column. Replaces five inline-styled copies. */
.np-cta{position:relative;overflow:hidden;background:var(--ink);border-radius:32px;padding:56px 64px;color:#fff;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:32px 56px;align-items:center}
.np-cta::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:44px 44px;pointer-events:none}
.np-cta-glow{width:420px;height:320px;background:#086AD8;opacity:.55;inset-inline-end:-60px;top:-120px}
.np-cta-mark{position:absolute;inset-inline-end:46%;bottom:-60px;opacity:.5;pointer-events:none}
.np-cta-main,.np-cta-act{position:relative;min-width:0}
.np-cta-kick{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#BBD8FC}
.np-cta h2{font-size:clamp(30px,3.4vw,44px);line-height:1.1;font-weight:600;margin-top:16px;max-width:620px;text-wrap:balance}
.np-cta-act{display:flex;flex-direction:column;align-items:flex-start;gap:20px;padding-inline-start:48px;border-inline-start:1px solid rgba(255,255,255,.16)}
.np-cta-phone{font-size:clamp(28px,2.8vw,36px);font-weight:600;line-height:1.1;white-space:nowrap}
.np-cta-phone a{color:#fff}
.np-cta-btns{display:flex;gap:12px;flex-wrap:wrap}
.np-cta .btn{white-space:nowrap}
.np-cta .btn-light{background:#fff;color:#0A1120}
html.dark .np-cta{background:#16243E}
@media (max-width:1100px){.np-cta{grid-template-columns:minmax(0,1fr);padding:44px;gap:28px}.np-cta-act{padding-inline-start:0;border-inline-start:0;border-top:1px solid rgba(255,255,255,.16);padding-top:28px}}
@media (max-width:640px){.np-cta{padding:32px 22px;border-radius:24px}.np-cta-btns{flex-direction:column;align-items:stretch;width:100%}.np-cta .btn{justify-content:center;white-space:normal;text-align:center}}
