/* NEO APPLET — Contact (conversion page) */
.cnt-aside{ display:grid; gap:var(--s-4); padding-left:var(--s-5); border-left:1px solid rgba(255,255,255,.22); min-width:16rem; }
.cnt-aside dt{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.6); }
.cnt-aside dd{ margin-top:2px; font-weight:500; color:#FBF9F4; }
.cnt-aside a:hover{ color:var(--brass-strong); }
.hero__grid--aside{ grid-template-columns:minmax(0,1fr) auto; }
@media (max-width:900px){ .hero__grid--aside{ grid-template-columns:1fr; } .cnt-aside{ display:none; } }

.conv__grid{ display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:var(--gap-lg); align-items:start; }
.chan{ position:sticky; top:calc(var(--header-h) + var(--s-6)); }
.chan > * + *{ margin-top:var(--s-5); }
.chan__list{ margin-top:var(--s-6) !important; border-top:1px solid var(--line-strong); }
.chan__list li{ display:grid; grid-template-columns:8.5rem 1fr; gap:var(--s-4); padding:15px 0; border-bottom:1px solid var(--line); align-items:baseline; font-weight:500; word-break:break-word; }
.chan__list .mono{ color:var(--ink-faint); }
.chan__list a:hover{ color:var(--accent-text); }
.chan__primary a{ font-family:var(--font-display); font-size:1.35rem; }
@media (max-width:940px){ .conv__grid{ grid-template-columns:1fr; } .chan{ position:static; } }
@media (max-width:520px){ .chan__list li{ grid-template-columns:1fr; gap:2px; } }

.formpanel{ padding:var(--gap-md); background:var(--paper); border:1px solid var(--line); border-top:2px solid var(--brass); scroll-margin-top:calc(var(--header-h) + var(--s-5)); }
.formpanel > h3{ font-size:clamp(1.5rem, 1.2rem + 1vw, 2rem); text-transform:uppercase; }
.formpanel > .lede{ margin:var(--s-2) 0 var(--s-5); font-size:1rem; }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:0 var(--s-4); }
.field{ display:flex; flex-direction:column; gap:8px; margin-bottom:var(--s-4); min-width:0; }
.field.full{ grid-column:1 / -1; }
.field label, .field-label{ font-family:var(--font-mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); }
.field .req{ color:var(--brass-ink); margin-left:2px; }
.field input, .field select, .field textarea{
  width:100%; min-height:48px; background:var(--bg); border:1px solid var(--line-strong); border-radius:var(--r);
  padding:12px 14px; font:400 .95rem var(--font-body); color:var(--ink); transition:border-color var(--dur-fast) var(--ease);
}
.field textarea{ resize:vertical; min-height:130px; }
.field input:focus, .field select:focus, .field textarea:focus{ border-color:var(--brass); outline:none; box-shadow:0 0 0 3px color-mix(in srgb, var(--brass) 22%, transparent); }
#f-projecttype:invalid{ color:var(--ink-faint); }
.field .err{ display:none; font-size:.8rem; color:#B23A2F; }
.field.invalid input, .field.invalid select, .field.invalid textarea, .field.invalid .ms-control{ border-color:#B23A2F; }
.field.invalid .err{ display:block; }
.form-note{ margin-top:var(--s-3); font-size:.8rem; color:var(--ink-faint); }
.hp-field{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
@media (max-width:560px){ .form-grid{ grid-template-columns:1fr; } .formpanel{ padding:var(--s-5); } }

.form-success, .form-error{ display:none; padding:var(--s-6); border:1px solid var(--line-strong); margin-bottom:var(--s-5); text-align:center; opacity:0; transform:translateY(10px); transition:opacity var(--dur-slow) var(--ease), transform var(--dur-slow) var(--ease); }
.form-success.show, .form-error.show{ display:block; }
.form-success.show.in, .form-error.show.in{ opacity:1; transform:none; }
.form-success b, .form-error b{ display:block; font-family:var(--font-display); font-weight:560; font-size:1.3rem; text-transform:uppercase; margin-bottom:8px; }
.form-success p, .form-error p{ font-size:.92rem; color:var(--ink-soft); max-width:46ch; margin:0 auto; }
.form-success{ border-color:color-mix(in srgb, var(--brass) 55%, transparent); }
.form-success-mark{ display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:50%; margin-bottom:var(--s-4); border:1px solid var(--brass); color:var(--brass-ink); }
.form-success-mark svg{ width:20px; height:20px; }
.form-error{ border-color:#B23A2F; } .form-error b{ color:#B23A2F; }
.btn[data-submit-btn][aria-busy="true"]{ pointer-events:none; opacity:.72; }
.btn[data-submit-btn][aria-busy="true"] .arr{ display:none; }
.btn-spinner{ display:none; width:15px; height:15px; border-radius:50%; border:2px solid currentColor; border-top-color:transparent; animation:spin 700ms linear infinite; }
.btn[data-submit-btn][aria-busy="true"] .btn-spinner{ display:inline-block; }
@keyframes spin{ to{ transform:rotate(360deg); } }

/* Services multi-select */
.ms{ position:relative; }
.ms-control{ width:100%; display:flex; align-items:center; gap:8px; flex-wrap:wrap; text-align:left; background:var(--bg); border:1px solid var(--line-strong); border-radius:var(--r); padding:10px 14px; min-height:48px; font:400 .95rem var(--font-body); color:var(--ink); transition:border-color var(--dur-fast) var(--ease); }
.ms-control:hover, .ms-control[aria-expanded="true"]{ border-color:var(--brass); }
.ms-placeholder{ color:var(--ink-faint); }
.ms-chips{ display:flex; flex-wrap:wrap; gap:6px; flex:1; min-width:0; }
.ms-chip{ display:inline-flex; align-items:center; gap:6px; padding:5px 8px 5px 10px; background:color-mix(in srgb, var(--brass) 12%, transparent); border:1px solid color-mix(in srgb, var(--brass) 42%, transparent); border-radius:var(--r); font-size:.8rem; line-height:1.2; }
.ms-chip-x{ position:relative; display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; color:var(--ink-faint); cursor:pointer; }
.ms-chip-x::after{ content:""; position:absolute; top:50%; left:50%; width:44px; height:44px; transform:translate(-50%,-50%); }
@media (hover:hover) and (pointer:fine){ .ms-chip-x::after{ width:24px; height:24px; } }
.ms-chip-x:hover{ color:var(--brass-ink); }
.ms-chip-x svg{ width:11px; height:11px; }
.ms-caret{ width:16px; height:16px; margin-left:auto; flex-shrink:0; color:var(--ink-faint); transition:transform var(--dur) var(--ease); }
.ms-control[aria-expanded="true"] .ms-caret{ transform:rotate(180deg); }
.ms-menu{ position:absolute; z-index:60; left:0; right:0; top:calc(100% + 6px); max-height:274px; overflow-y:auto; padding:6px; background:var(--paper); border:1px solid var(--line-strong); border-radius:var(--r); box-shadow:0 18px 40px -22px rgba(10,10,11,.5); }
.ms-menu li{ display:flex; align-items:center; gap:10px; padding:10px 12px; min-height:44px; cursor:pointer; font-size:.9rem; color:var(--ink-soft); }
.ms-menu li::before{ content:""; width:15px; height:15px; flex-shrink:0; border:1px solid var(--line-strong); background:var(--bg) center/11px no-repeat; }
.ms-menu li[aria-selected="true"]{ color:var(--ink); }
.ms-menu li[aria-selected="true"]::before{ border-color:var(--brass); background-color:var(--brass); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E"); }
.ms-menu li:hover, .ms-menu li.is-active{ background:var(--bg-alt); color:var(--ink); }
.ms-menu li:focus-visible{ outline:2px solid var(--brass); outline-offset:-2px; }
.ms-hint{ display:block; font-size:.78rem; color:var(--ink-faint); margin-top:8px; }

/* What happens next */
.nsteps{ position:relative; display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:var(--gap-sm); }
.nsteps__line{ position:absolute; left:0; right:0; top:5px; height:1px; background:var(--line-strong); }
.nsteps li{ position:relative; padding-top:var(--s-6); }
.nsteps li::before{ content:""; position:absolute; top:0; left:0; width:11px; height:11px; background:var(--bg); border:1px solid var(--brass-strong); }
.nsteps li:last-child::before{ background:var(--cyan); border-color:var(--cyan); }
.nsteps .mono{ color:var(--accent-text); }
.nsteps h3{ margin:var(--s-2) 0 var(--s-3); }
.nsteps p{ color:var(--ink-soft); font-size:.95rem; max-width:32ch; }
@media (max-width:860px){
  .nsteps{ grid-template-columns:1fr; padding-left:var(--s-6); gap:var(--gap-md); }
  .nsteps__line{ left:5px; right:auto; top:0; bottom:0; width:1px; height:auto; }
  .js .nsteps__line[data-rv="line"]{ transform:scaleY(0); transform-origin:top; }
  .js .nsteps__line[data-rv="line"].is-in{ transform:scaleY(1); }
  .nsteps li{ padding-top:0; }
  .nsteps li::before{ left:calc(-1 * var(--s-6)); top:7px; }
}

/* Office & map */
.map-block{ display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:var(--gap-lg); align-items:center; }
.map-copy > * + *{ margin-top:var(--s-4); }
.map-addr{ color:var(--ink-soft); line-height:1.7; }
.map-copy .link{ margin-top:var(--s-5); }
.map-frame{ position:relative; overflow:hidden; aspect-ratio:16/9; border:1px solid var(--line-strong); background:var(--bg-alt); }
.map-frame iframe{ width:100%; height:100%; border:0; display:block; filter:grayscale(.55) contrast(1.05); }
.map-load{ position:absolute; inset:0; width:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--s-4); color:var(--ink-soft);
  background:repeating-linear-gradient(0deg, transparent 0 39px, var(--line) 39px 40px), repeating-linear-gradient(90deg, transparent 0 39px, var(--line) 39px 40px), var(--bg-alt); transition:color var(--dur) var(--ease); }
.map-load:hover{ color:var(--ink); }
.map-pin{ display:inline-flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:50%; border:1px solid color-mix(in srgb, var(--brass) 55%, transparent); background:var(--paper); color:var(--brass-ink); transition:transform var(--dur) var(--ease); }
.map-load:hover .map-pin{ transform:translateY(-3px); }
.map-pin svg{ width:22px; height:22px; }
@media (max-width:860px){ .map-block{ grid-template-columns:1fr; } .map-frame{ aspect-ratio:4/3; } }

/* Turnstile (optional): zero footprint unless Cloudflare asks for interaction. */
.ts-slot.is-active{ margin:0 0 var(--s-4); }
