/* DOC N.I.L. / Type, grid, signal. Shared public-site refinement. */
:root{
  --dn-font-display:"Arial Narrow","Helvetica Neue",Arial,sans-serif;
  --dn-font-system:"Helvetica Neue",Helvetica,Arial,sans-serif;
  --dn-font-machine:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --dn-rule-light:#e7e6e12e;
  --dn-rule-dark:#08080830;
  --hb-orange:var(--dn-signal,#fa6037);
  --hb-orange-text:#a53719;
  --hb-mono:var(--dn-font-machine);
  --orange:var(--dn-signal,#fa6037);
}
body:is(.heartbeat,.heartbeat-legacy,.docnil-glass-buttons,.dnwide-case-page){
  --dn-signal:#fa6037;
  --orange:var(--dn-signal);
  --orange-dark:#a53719;
  font-family:var(--dn-font-system);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
:is(.heartbeat,.heartbeat-legacy,.docnil-glass-buttons,.dnwide-case-page) :is(h1,h2,h3,h4){
  font-family:var(--dn-font-display);
  font-stretch:condensed;
  text-wrap:balance;
}
:is(.heartbeat,.heartbeat-legacy,.docnil-glass-buttons,.dnwide-case-page) :is(p,li,label,input,select,textarea){
  font-family:var(--dn-font-system);
}
:is(.heartbeat,.heartbeat-legacy,.docnil-glass-buttons,.dnwide-case-page) :is(.eyebrow,.service-code,.dn-kicker,.dn-card-number,.dn-home-topline,.dn-home-bottomline,.dn-art-meta,.dn-home-services-footer>span,.calc-kicker,.dn-breadcrumb,.hb-signature){
  font-family:var(--dn-font-machine);
  font-size:11px;
  line-height:1.6;
  font-weight:400;
  letter-spacing:.085em;
}
:is(.heartbeat,.heartbeat-legacy,.docnil-glass-buttons,.dnwide-case-page) :is(.dn-lead,.dn-product-hero>p,.dn-method p,.dn-section p,.product-body p){
  line-height:1.65;
  text-wrap:pretty;
}
:is(.heartbeat,.heartbeat-legacy,.docnil-glass-buttons,.dnwide-case-page) :is(.text-link,.dn-text-link,.wp-text-link){
  font-family:var(--dn-font-system);
  font-size:14px;
  font-weight:600;
  line-height:1.4;
  text-decoration:none;
  text-underline-offset:5px;
  text-decoration-thickness:1px;
}
:is(.heartbeat,.heartbeat-legacy,.docnil-glass-buttons,.dnwide-case-page) :is(.text-link,.dn-text-link,.wp-text-link):focus-visible{
  outline:2px solid var(--dn-signal);outline-offset:5px;
}
@media(hover:hover){
  :is(.heartbeat,.heartbeat-legacy,.docnil-glass-buttons,.dnwide-case-page) :is(.text-link,.dn-text-link,.wp-text-link):hover{text-decoration:underline}
}

/* Navigation uses the same ink, spacing, and hit areas at every breakpoint. */
.hb-header{column-gap:clamp(12px,1.8vw,26px);row-gap:12px}
.hb-header .hb-logo{position:relative;isolation:isolate;min-height:44px;font-family:var(--dn-font-system);letter-spacing:-.055em}
.hb-header .hb-nav{gap:clamp(16px,2vw,30px)}
.hb-header .hb-nav>a{font-family:var(--dn-font-system);font-size:13px;line-height:1.35;min-height:44px;display:inline-flex;align-items:center}
.hb-header :is(.hb-motion,.hb-menu){
  font-family:var(--dn-font-machine);font-size:11px;letter-spacing:.015em;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:44px;padding:10px 12px;white-space:nowrap;
}
.hb-header .hb-menu{display:none}
.hb-header .hb-motion::before{
  content:"";display:block;flex:0 0 4px;width:4px;height:4px;
  margin:0 6px 5px 0;background:var(--dn-signal);
  box-shadow:6px 0 0 var(--dn-signal),6px 6px 0 var(--dn-paper);
}
.hb-header .hb-motion[aria-pressed="false"]::before{background:var(--dn-steel);box-shadow:6px 0 0 var(--dn-steel),6px 6px 0 var(--dn-paper)}
.hb-header .hb-nav>a.hb-nav-cta{min-height:48px;padding:14px 18px;gap:22px}
@media(hover:hover){
  .hb-header .hb-nav>a.hb-nav-cta:hover{background:var(--dn-paper)!important;color:var(--dn-carbon)!important;border-color:var(--dn-paper)!important}
  .hb-header :is(.hb-motion,.hb-menu):hover{background:var(--dn-graphite)!important;border-color:var(--dn-signal)!important;color:var(--dn-paper)!important}
}

/* One short sequence affects only the mark. The link and wordmark never move. */
.hb-header .hb-mark{position:relative;overflow:visible;isolation:isolate}
.hb-header .hb-mark>i{transition:opacity 80ms linear}
.hb-header .hb-mark.dn-logo-is-playing>i{opacity:0}
.dn-logo-signal-canvas{position:absolute;left:-40px;top:-32px;pointer-events:none;z-index:1;display:block;max-width:none!important;opacity:0}
.hb-header .hb-mark.dn-logo-is-playing .dn-logo-signal-canvas{opacity:1}

/* Contact details occupy distinct rows, including the 758px tablet layout. */
.hb-footer{color:var(--dn-paper);font-family:var(--dn-font-system)}
.hb-footer .hb-footer-intro{min-width:0}
.hb-footer .hb-footer-intro p{max-width:36ch;font-size:14px;line-height:1.75;color:#b7bab6;margin-bottom:20px!important}
.hb-footer .hb-footer-intro>a{
  display:flex!important;width:fit-content;max-width:100%;align-items:center;
  gap:8px;min-height:44px;margin:0!important;font:14px/1.5 var(--dn-font-system);
  overflow-wrap:anywhere;
}
.hb-footer .hb-footer-intro>a+a{margin-top:4px!important}
.hb-footer :is(.hb-footer-grid .eyebrow,.hb-footer-intro .eyebrow){font:11px/1.6 var(--dn-font-machine);letter-spacing:.085em;color:#b7bab6}
.hb-footer .hb-footer-links{gap:8px}
.hb-footer .hb-footer-links a{font-size:14px;line-height:1.45;min-height:44px;width:fit-content}
.hb-footer .hb-footer-divisions a{min-height:60px;column-gap:16px}
.hb-footer .hb-footer-divisions small{font:11px/1.5 var(--dn-font-machine);color:#b7bab6}
.hb-footer .hb-footer-bottom{font:11px/1.6 var(--dn-font-machine);gap:16px 24px;align-items:center;color:#b7bab6}
.hb-footer .hb-footer-bottom a{font:11px/1.5 var(--dn-font-machine);min-height:44px}
.hb-footer a:focus-visible{outline:2px solid var(--dn-signal);outline-offset:5px}

/* Service templates already supply a visible number; keep one clear sequence. */
.docnil-signal-system .dn-deliverables li:has(>span:first-child)::before{content:none}
.docnil-signal-system .dn-deliverables li>span:first-child{font:11px/1.6 var(--dn-font-machine);color:#a53719;padding-top:2px}
.docnil-signal-system .dn-deliverables li>p{font-size:14px;line-height:1.65;color:#535653}

/* Readable form text and consistent field edges; field behavior stays native. */
:is(.heartbeat,.heartbeat-legacy,.docnil-glass-buttons) :is(.inquiry-card,.inquiry-form,.calculator-surface,.dn-estimate-controls) :is(input:not([type="checkbox"],[type="radio"],[type="range"],[type="submit"]),select,textarea){
  font-family:var(--dn-font-system);font-size:14px;line-height:1.5;border-radius:0;
}
:is(.heartbeat,.heartbeat-legacy,.docnil-glass-buttons) :is(input,select,textarea):focus-visible{outline:2px solid var(--dn-signal);outline-offset:3px}
:is(.heartbeat,.heartbeat-legacy,.docnil-glass-buttons) :is(.dn-home-art-controls,.sm-controls,.particle-stage-controls) button{font-family:var(--dn-font-machine);font-size:11px;min-height:44px}

@media(max-width:900px){
  .hb-header .hb-menu{display:inline-flex}
  .hb-header .hb-nav{row-gap:4px}
  .hb-header .hb-nav>a{font-size:15px;min-height:48px}
  .hb-header .hb-nav>a.hb-nav-cta{margin-top:8px;justify-content:space-between}
  .hb-footer .hb-footer-intro p{max-width:40ch}
}
@media(max-width:600px){
  .hb-header{column-gap:8px}
  .hb-header>.hb-logo{font-size:19px;gap:8px}
  .hb-header :is(.hb-motion,.hb-menu){font-size:10px;padding-inline:9px;gap:6px;min-width:0}
  .hb-header .hb-motion{margin-left:auto}
  .hb-header .hb-motion::before{width:3px;height:3px;flex-basis:3px;margin-right:4px;box-shadow:5px 0 0 var(--dn-signal),5px 5px 0 var(--dn-paper)}
  .hb-header .hb-motion[aria-pressed="false"]::before{box-shadow:5px 0 0 var(--dn-steel),5px 5px 0 var(--dn-paper)}
  .hb-footer .hb-footer-bottom{align-items:flex-start;gap:8px 16px}
  .hb-footer .hb-footer-divisions small{font-size:10px;overflow-wrap:anywhere}
}
@media(prefers-reduced-motion:reduce){
  .hb-header .hb-mark>i{transition:none!important;opacity:1!important}
  .dn-logo-signal-canvas{display:none!important}
}
html[data-motion="off"] .hb-header .hb-mark>i{transition:none!important;opacity:1!important}
html[data-motion="off"] .dn-logo-signal-canvas{display:none!important}
@media print{.dn-logo-signal-canvas{display:none!important}}

/* Keep keyboard and anchor destinations clear of the reserved arcade rail. */
body.docnil-arcade-docked :is(main,footer) :is(a,button,input,select,textarea,summary,[tabindex]){scroll-margin-bottom:calc(var(--dn-arcade-dock-height,0px) + 18px)}
