/* Site-local enquiry flow. The shared cinematic engine stays unchanged. */
.demo-trigger.btn { border: 1px solid var(--navy); background: transparent; color: var(--navy); cursor: pointer; }
.hero-actions .hero-note { flex-basis: 100%; max-width: 46ch; }
.demo-dialog { width: min(520px, calc(100% - 32px)); max-height: calc(100dvh - 32px); margin: auto; padding: clamp(24px, 5vw, 40px); border: 1px solid var(--hairline); border-radius: 8px; background: var(--paper); color: var(--ink); overflow-y: auto; overscroll-behavior: contain; }
.demo-dialog::backdrop { background: rgb(15 26 42 / 65%); }
html.demo-open { overflow: hidden; }
.demo-dialog [hidden] { display: none !important; }
.demo-close { display: block; margin: -12px -12px 16px auto; min-height: 44px; padding: 8px 12px; border: 0; background: transparent; color: var(--muted); cursor: pointer; }
.demo-dialog #demo-title { font-size: clamp(28px, 4vw, 34px); line-height: 1.16; margin: 0 0 18px; }
.demo-dialog p { margin: 0 0 20px; font-size: 16px; line-height: 1.55; color: var(--muted); }
.demo-dialog label { display: block; margin: 22px 0 8px; font-size: 15px; font-weight: 500; }
.demo-dialog label span { font-weight: 400; color: var(--muted); }
.demo-dialog input:not([type=hidden]), .demo-dialog select { width: 100%; min-height: 50px; padding: 12px; border: 1px solid #7e857f; border-radius: 4px; background: var(--paper); color: var(--ink); font: inherit; font-size: 16px; }
.demo-dialog :is(input, select):focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }
.demo-dialog input[aria-invalid=true] { border-color: #a12626; }
.demo-dialog .demo-error { color: #a12626; font-size: 14px; margin: 10px 0 0; }
.demo-submit { width: 100%; border: 0; margin: 26px 0 14px; cursor: pointer; }
.demo-submit:disabled { opacity: .65; cursor: wait; }
.demo-dialog .demo-fine { font-size: 13px; margin-bottom: 0; }
.demo-fine a, .demo-calendar { text-underline-offset: 3px; }
.demo-calendar { display: inline-flex; align-items: center; min-height: 44px; font-weight: 500; }
.demo-honey { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
@media (hover: hover) { .demo-trigger.btn:hover { background: var(--navy); color: var(--paper); } .demo-close:hover { color: var(--ink); } }
@media (max-width: 540px) { .hero-actions .demo-trigger { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .demo-dialog .btn, .demo-trigger.btn { transition: none; } }

.demo-dialog .demo-submit { background: #355740; }
@media (hover: hover) { .demo-dialog .demo-submit:hover { background: #40664c; } }
