/* The site's own booking form (tools/leadform.py), round 7 look: navy #0D1B2A type, the logo-gold metal button with navy
   letters, rounded 14 px fields, pill chips. Ported from MSD's form (clients/metropolitan-smile-design/website/native-2026-10/
   src/navy/form.css). Errors are navy with an icon and a mist fill (no red). Nothing moves under reduced motion. */
.nf-box{--nf-e:cubic-bezier(.4,0,.2,1);--nf-ink:#0D1B2A;--nf-line:#DCE1E7;--nf-mist:#F4F6F8;--nf-slate:#4A5668;--nf-ring:#8A6514;
  --nf-gold:linear-gradient(180deg,#FBE9B8 0%,#F0CF84 14%,#DDB35C 34%,#D2A64B 50%,#DDB35C 66%,#E8C371 84%,#F7DFA4 100%);
  --nf-sans:Inter,'Segoe UI',system-ui,sans-serif;--nf-disp:Montserrat,'Segoe UI',system-ui,sans-serif;
  position:relative;container-type:inline-size;scroll-margin-top:110px;font-family:var(--nf-sans);color:var(--nf-ink);text-align:left}
.nf-box p{padding:0;text-indent:0}
.nf{display:grid;gap:22px;margin:0;padding:clamp(18px,5cqi,32px)}
.nf[hidden]{display:none}
.nf__row{display:grid;gap:22px}
@container (min-width:540px){.nf__row{grid-template-columns:1fr 1fr}}
.nf__f{min-width:0;margin:0;padding:0;border:0}
.nf label,.nf legend{display:block;padding:0;font:600 14.5px/1.3 var(--nf-disp);color:var(--nf-ink)}
.nf__opt{font:400 13.5px var(--nf-sans);color:var(--nf-slate)}
.nf-box .nf__hint{margin:4px 0 0;font:400 13px/1.45 var(--nf-sans);color:var(--nf-slate)}
.nf input[type=text],.nf input[type=tel],.nf input[type=email],.nf textarea{display:block;box-sizing:border-box;width:100%;height:52px;margin:8px 0 0;padding:0 16px;
  border:1.5px solid var(--nf-line);border-radius:14px;background:#fff;font:400 16px/1.3 var(--nf-sans);color:var(--nf-ink);box-shadow:none;
  transition:border-color .18s var(--nf-e),box-shadow .18s var(--nf-e),background-color .18s var(--nf-e)}
.nf textarea{height:auto;min-height:104px;padding:14px 16px;line-height:1.5;resize:vertical}
.nf ::placeholder{color:#7E8899;opacity:1}
@media(hover:hover){.nf input:hover,.nf textarea:hover{border-color:#BCC5D0}}
.nf input:focus,.nf textarea:focus{outline:0;border-color:#BA8820;box-shadow:0 0 0 4px rgba(210,166,75,.28)}
.nf .is-err input,.nf .is-err textarea{border:2px solid var(--nf-ink);background:var(--nf-mist)}
.nf-box .nf__err{display:flex;align-items:flex-start;gap:8px;margin:9px 0 0;font:600 13.5px/1.4 var(--nf-sans);color:var(--nf-ink)}
.nf__err:before{content:"!";display:grid;place-items:center;flex:none;width:18px;height:18px;border-radius:50%;background:var(--nf-ink);font:700 12px/1 var(--nf-sans);color:#fff}
.nf-box .nf__err[hidden]{display:none}
.nf__chiprow{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.nf__chip{position:relative;display:inline-flex;margin:0;padding:0!important}
.nf__chip input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.nf__chip span{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:0 17px 0 11px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--nf-line);
  font:600 14px/1.25 var(--nf-sans);color:var(--nf-ink);transition:background-color .18s var(--nf-e),color .18s var(--nf-e),box-shadow .18s var(--nf-e),transform .24s var(--nf-e)}
.nf__chip i{display:grid;place-items:center;flex:none;width:22px;height:22px;border-radius:50%;box-shadow:inset 0 0 0 1.5px #BCC5D0;transition:background .18s var(--nf-e),box-shadow .18s var(--nf-e)}
.nf__chip svg,.nf-done__mark svg{width:14px;height:14px;fill:none;stroke:var(--nf-ink);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .2s var(--nf-e) 40ms}
@media(hover:hover){.nf__chip:hover span{box-shadow:inset 0 0 0 1.5px #A6B1BF}}
.nf__chip:active span{transform:scale(.97);transition-duration:.12s}
.nf__chip input:checked+span{background:var(--nf-ink);color:#fff;box-shadow:inset 0 0 0 1.5px var(--nf-ink)}
.nf__chip input:checked+span i{background:var(--nf-gold);box-shadow:none}
.nf__chip input:checked+span svg{stroke-dashoffset:0}
.nf__chip input:focus-visible+span{box-shadow:inset 0 0 0 1.5px var(--nf-ink),0 0 0 3px #fff,0 0 0 5px var(--nf-ring)}
.nf__chips.is-err .nf__chip input:not(:checked)+span{box-shadow:inset 0 0 0 1.5px #6B7686}
.nf__send{display:flex}
button.nf__go{display:inline-flex;align-items:center;justify-content:space-between;gap:14px;height:56px;margin:0;padding:0 8px 0 26px;border:0;border-radius:999px;background:var(--nf-gold);
  color:var(--nf-ink);font:700 15.5px/1 var(--nf-disp);letter-spacing:0;text-transform:none;white-space:nowrap;cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,244,214,.95),inset 0 0 0 1px rgba(240,201,106,.7),0 12px 26px -12px rgba(150,104,18,.75);transition:transform .24s var(--nf-e),box-shadow .24s var(--nf-e)}
button.nf__go:hover,button.nf__go:focus,button.nf__go:active{background:var(--nf-gold);color:var(--nf-ink)}
button.nf__go:focus-visible{outline:0;box-shadow:0 0 0 3px #fff,0 0 0 5px var(--nf-ring)}
button.nf__go:active{transform:scale(.97);transition-duration:.12s}
.nf__go i{position:relative;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--nf-ink);color:#fff;transition:transform .24s var(--nf-e)}
.nf__go svg{width:16px;height:16px;transition:opacity .15s var(--nf-e),transform .15s var(--nf-e)}
@media(hover:hover){button.nf__go:hover i{transform:translateX(3px)}}
.nf__spin{position:absolute;inset:11px;border-radius:50%;border:2px solid rgba(255,255,255,.28);border-top-color:#fff;opacity:0;transition:opacity .15s var(--nf-e)}
.nf.is-busy .nf__go{cursor:progress}.nf.is-busy .nf__go svg{opacity:0;transform:scale(.6)}
.nf.is-busy .nf__spin{opacity:1;animation:nf-spin 1s linear infinite}
@container (max-width:420px){.nf__send .nf__go{width:100%}}
.nf__status:empty{display:none}
.nf-box .nf__status{margin:0;padding:13px 16px;border-radius:14px;background:var(--nf-mist);box-shadow:inset 3px 0 0 var(--nf-ink);font:600 14px/1.45 var(--nf-sans);color:var(--nf-ink)}
.nf__status a,.nf__fine a{color:var(--nf-ink);text-decoration:underline}
.nf-box .nf__fine{margin:-4px 0 0;font:400 12.5px/1.55 var(--nf-sans);color:var(--nf-slate)}
.nf label.nf__check{display:flex;align-items:flex-start;gap:11px;font:400 13.5px/1.5 var(--nf-sans);color:var(--nf-slate);cursor:pointer}
.nf__check input{flex:none;width:20px;height:20px;margin:1px 0 0;accent-color:var(--nf-ink);cursor:pointer}
.nf__check input:focus-visible{outline:2px solid var(--nf-ring);outline-offset:2px}
.nf__nojs{margin:0;font:600 14px/1.45 var(--nf-sans)}
.nf__hp{position:absolute!important;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.nf-done{display:grid;justify-items:start;gap:12px;padding:clamp(22px,6cqi,40px)}
.nf-done[hidden]{display:none}
.nf-done__mark{position:relative;display:grid;place-items:center;width:64px;height:64px;margin-bottom:6px;border-radius:50%;background:var(--nf-ink)}
.nf-done__mark svg{position:relative;width:28px;height:28px;stroke:#F0C96A;stroke-width:2.6;transition:none}
.nf-done__glow{position:absolute;inset:-14px;border-radius:50%;background:radial-gradient(circle,rgba(240,201,106,.5),rgba(240,201,106,0) 68%);opacity:.5}
.nf-done__h{margin:0;font:700 clamp(26px,6cqi,34px)/1.1 var(--nf-disp);letter-spacing:-.02em;color:var(--nf-ink);outline:0}
.nf-box .nf-done__p{max-width:46ch;margin:0;font:400 16px/1.6 var(--nf-sans);color:#3B4A5C}
.nf-done__call{display:flex;align-items:center;gap:12px;margin-top:8px;color:var(--nf-ink);text-decoration:none}
.nf-done__call i{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--nf-gold);color:var(--nf-ink)}.nf-done__call svg{width:20px;height:20px}
.nf-done__call span{font:400 14px/1.3 var(--nf-sans);color:var(--nf-slate)}.nf-done__call b{display:block;font:700 18px/1.2 var(--nf-sans);color:var(--nf-ink)}
.nf__err:not([hidden]){animation:nf-err .2s var(--nf-e) both}.nf__err:not([hidden]):before{animation:nf-pop .15s var(--nf-e) 50ms both}
.nf__status:not(:empty){animation:nf-err .25s var(--nf-e) both}
.nf-box.is-leaving .nf{animation:nf-out .28s cubic-bezier(.4,0,1,1) forwards;pointer-events:none}
.nf-box.is-swap .nf{position:absolute;top:0;left:0;right:0}
.nf-done.is-in>*{animation:nf-rise .4s var(--nf-e) both}
.nf-done.is-in>.nf-done__h{animation-delay:60ms}.nf-done.is-in>.nf-done__p{animation-delay:120ms}.nf-done.is-in>.nf-done__call{animation-delay:180ms}
.nf-done.is-in .nf-done__mark svg{animation:nf-draw .26s var(--nf-e) .45s both}
.nf-done.is-in .nf-done__glow{animation:nf-breathe 4s ease-in-out .7s infinite}
@keyframes nf-spin{to{transform:rotate(1turn)}}
@keyframes nf-err{from{opacity:0;transform:translateY(-6px)}}
@keyframes nf-pop{from{transform:scale(.6)}}
@keyframes nf-out{to{opacity:0;transform:translateY(-12px)}}
@keyframes nf-rise{0%{opacity:0;transform:translate(6px,20px)}60%{transform:translate(3px,3px)}100%{opacity:1;transform:none}}
@keyframes nf-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes nf-breathe{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:.75;transform:scale(1.07)}}
@media(prefers-reduced-motion:reduce){.nf-box *,.nf-box *:before{animation:none!important;transition:none!important}.nf-done__mark svg,.nf__chip input:checked+span svg{stroke-dashoffset:0}}
/* inside the home page's form card (.bkf) the card already has the padding and shadow */
.bkf .nf-box{min-height:0}.bkf{min-height:0!important}
