/* Native passport pages share the current main-site shell. Full header/footer
   typography and responsive geometry remain in /src/harmony-shell.css. */
.passport-site .vn-skip {
  position: fixed;
  top: -100px;
  left: 18px;
  z-index: 150;
  padding: 12px 16px;
  border: 1px solid #eceef1;
  border-radius: 10px;
  background: #fff;
  color: #2146a8;
  text-decoration: none;
}
.passport-site .vn-skip:focus { top: 8px; }
.passport-site .hn-header,
.passport-site .hn-footer { box-sizing: border-box; }
.passport-site .hn-header a,
.passport-site .hn-footer a { text-underline-offset: 4px; }
.passport-site .hn-header .hn-menu > summary { -webkit-tap-highlight-color: transparent; }
.passport-site .hn-header .camera-entry-mark {
  display: inline-block;
  flex: none;
  width: 38px;
  height: 28px;
  background: url('/visual/navigation/camera-scan.svg') center/contain no-repeat;
}
.passport-site .hn-dock { display: none; }
.passport-site .hn-dock > a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-height: 48px;
  color: #172036;
  font: 500 11px/1.4 Onest, sans-serif;
  text-decoration: none;
}
.passport-site .hn-dock .vn-create-mark,
.passport-site .hn-dock .vn-grid-mark { height: 30px; font-size: 24px; line-height: 30px; }
.passport-site .passport-local-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  min-height: 44px;
  margin: 19px 0 0;
  color: #7e8592;
  font: 400 12px/1.6 Onest, sans-serif;
}
.passport-site .passport-local-nav > a { color: #667183; text-decoration: none; }
.passport-site .passport-local-nav > a:hover { color: #2146a8; }
.passport-site .passport-local-nav > [aria-current] { color: #172036; }
.passport-site .passport-local-nav > .passport-local-action {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  margin-left: auto;
  color: #2146a8;
  font-weight: 500;
}
.passport-site .passport-page-notes {
  display: grid;
  gap: 12px;
  padding: 24px 0 0;
  border-top: 1px solid #eceef1;
  color: #667183;
  font: 400 12px/1.7 Onest, sans-serif;
}
.passport-site .passport-page-notes p { max-width: 920px; margin: 0; }
.passport-site .passport-page-notes nav { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.passport-site .passport-page-notes a { display: inline-flex; align-items: center; min-height: 44px; color: #2146a8; }
@media (max-width: 850px) {
  .passport-site { padding-bottom: calc(73px + env(safe-area-inset-bottom)); }
  .passport-site .hn-dock {
    display: grid;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 38;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom));
    border-top: 1px solid #eceef1;
    background: #fff;
  }
}
@media (max-width: 600px) {
  .passport-site .passport-local-nav { margin-top: 13px; font-size: 11px; gap: 5px 8px; }
  .passport-site .passport-local-nav > .passport-local-action { margin-left: 0; flex-basis: 100%; }
}
@media print {
  .passport-site { padding-bottom: 0; }
  .passport-site .vn-skip,
  .passport-site .passport-local-nav,
  .passport-site .passport-page-notes { display: none !important; }
}

/* Typography is matched by role to the current homepage, including breakpoints. */
.passport-site{font-synthesis:none}
.passport-site #passport-app h1,.passport-site .commissioning-intro h1{font:600 47px/1.19 Unbounded,sans-serif;letter-spacing:-2.1px}
.passport-site #passport-app .service-offer .section-heading h2,.passport-site #passport-app :is(.service-offer,.service-request,.how-section,.process-link) h2{font:500 37px/1.22 Unbounded,sans-serif;letter-spacing:-1.5px}
.passport-site #passport-app .section-heading h2{font:600 27px/1.18 Onest,sans-serif;letter-spacing:-.8px}
.passport-site #passport-app :is(.panel-heading,.model-head,.apply-panel) h3{font:600 20px/1.3 Onest,sans-serif;letter-spacing:-.4px}
.passport-site #passport-app .service-price{display:flex;align-items:center;flex-wrap:wrap;gap:12px 18px;margin:26px 0 0}
.passport-site #passport-app .service-price strong{font:600 26px/1.3 Onest,sans-serif;letter-spacing:-.7px;color:#172036}
.passport-site #passport-app .service-price>span{font-size:13px;color:#667183;max-width:34ch;line-height:1.55}
.passport-site #passport-app .service-price-note{color:#667183;font-size:12px;line-height:1.6;margin:17px 0 0;max-width:60ch}
.passport-site #passport-app .service-offer{padding:60px 0 44px;border-bottom:1px solid #eceef1}
.passport-site #passport-app .service-offer>p{max-width:72ch;color:#667183;font-size:17px;line-height:1.65}
.passport-site #passport-app .service-scope-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:32px}
.passport-site #passport-app .service-scope-grid article{padding:26px;border-radius:21px;background:#f8f9fb;min-width:0}
.passport-site #passport-app :is(.service-scope-grid,.service-stages) h3{font:600 16px/1.5 Onest,sans-serif;letter-spacing:-.4px;margin:0 0 12px}
.passport-site #passport-app :is(.service-scope-grid,.service-stages) p{font-size:14px;line-height:1.75;color:#667183;margin:0}
.passport-site #passport-app .service-stages{padding:0}
.passport-site #passport-app .service-stages{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px;list-style:none;padding:0;margin:30px 0 0}
.passport-site #passport-app .service-stages li{padding-top:18px;border-top:1px solid #eceef1;min-width:0}
.passport-site #passport-app .service-stages small{display:block;color:#2146a8;font-size:12px;margin-bottom:12px}
.passport-site #passport-app .service-request{margin:40px 0;padding:38px;border-radius:28px;background:#f5f6f8;scroll-margin-top:28px}
.passport-site #passport-app .service-request p:not(.service-price){max-width:75ch;font-size:16px;line-height:1.7;color:#667183}
.passport-site #passport-app .service-request-actions{display:flex;align-items:center;flex-wrap:wrap;gap:18px 28px;margin-top:24px}
@media(min-width:1440px){.passport-site #passport-app h1,.passport-site .commissioning-intro h1{font-size:52px}}
@media(max-width:1100px){.passport-site #passport-app h1,.passport-site .commissioning-intro h1{font-size:39px;letter-spacing:-1.6px}.passport-site #passport-app .service-offer .section-heading h2,.passport-site #passport-app :is(.service-offer,.service-request,.how-section,.process-link) h2{font-size:32px}.passport-site #passport-app :is(.service-scope-grid,.service-stages) h3{font-size:14px}}
@media(max-width:850px){.passport-site #passport-app h1,.passport-site .commissioning-intro h1{font-size:32px;letter-spacing:-1.4px}.passport-site #passport-app .service-offer .section-heading h2,.passport-site #passport-app :is(.service-offer,.service-request,.how-section,.process-link) h2{font-size:28px}.passport-site #passport-app .service-scope-grid{grid-template-columns:minmax(0,1fr)}.passport-site #passport-app .service-stages{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.passport-site #passport-app h1,.passport-site .commissioning-intro h1{font-size:29px;line-height:1.2;letter-spacing:-1.3px}.passport-site #passport-app .service-offer .section-heading h2,.passport-site #passport-app :is(.service-offer,.service-request,.how-section,.process-link) h2{font-size:29px;letter-spacing:-1.2px}.passport-site #passport-app .section-heading h2{font-size:26px}.passport-site #passport-app :is(.service-scope-grid,.service-stages) h3{font-size:13px;line-height:1.3;letter-spacing:-.3px}.passport-site #passport-app .service-offer{padding:36px 0 26px}.passport-site #passport-app .service-offer>p{font-size:16px}.passport-site #passport-app .service-scope-grid{gap:14px}.passport-site #passport-app .service-scope-grid article{padding:22px}.passport-site #passport-app .service-stages{padding:0}.passport-site #passport-app .service-stages{gap:22px 18px}.passport-site #passport-app .service-request{padding:26px 20px;margin:30px 0;border-radius:22px}.passport-site #passport-app .service-price{margin-top:20px;gap:8px}.passport-site #passport-app .service-price strong{font-size:24px}.passport-site #passport-app .service-price>span{width:100%;max-width:100%}.passport-site #passport-app .service-request-actions{align-items:flex-start;flex-direction:column}}
@media(max-width:360px){.passport-site #passport-app h1,.passport-site .commissioning-intro h1{font-size:25px;letter-spacing:-1.1px}.passport-site #passport-app .service-offer .section-heading h2,.passport-site #passport-app :is(.service-offer,.service-request,.how-section,.process-link) h2{font-size:25px}.passport-site #passport-app :is(.service-scope-grid,.service-stages) h3{font-size:12px}.passport-site #passport-app .service-stages{grid-template-columns:minmax(0,1fr)}}
@media print{.passport-site .service-offer,.passport-site .service-stages,.passport-site .service-request{display:none}}

.passport-site{background:#fff}
.passport-site .commissioning-actions{display:flex;align-items:center;gap:18px 26px;flex-wrap:wrap;margin-top:22px}
.passport-site a.commissioning-primary{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:49px;padding:13px 19px;border-radius:13px;background:#e95a24;box-shadow:0 3px 0 #bb4214;color:#fff;font-size:13px;font-weight:600;line-height:1.5;text-decoration:none}
.passport-site a.commissioning-primary:hover{background:#b93d17}
.passport-site .commissioning-order{display:flex;align-items:center;justify-content:space-between;gap:28px;border-block:1px solid #eceef1;padding:38px 0;margin:42px 0 0}
.passport-site .commissioning-order h2{font:500 26px/1.35 Unbounded,sans-serif;margin:0 0 14px}
.passport-site .commissioning-order p{max-width:740px;font-size:15px;line-height:1.7;color:#667183;margin:0}
.passport-site .commissioning-order>.commissioning-primary{flex:none}
#vqr-cx-workbench .cx-packet-export{padding-top:18px;margin-top:24px;border-top:1px solid var(--cx-line)}
@media(max-width:700px){.passport-site .commissioning-order{align-items:flex-start;flex-direction:column;padding:26px 0}.passport-site .commissioning-order h2{font-size:22px}.passport-site .commissioning-actions{align-items:flex-start;gap:16px}.passport-site a.commissioning-primary{max-width:100%}}
@media print{
  body.printing-packet>.hn-header,body.printing-packet>.hn-dock,body.printing-packet>.hn-footer{display:none!important}
  body.printing-packet .commissioning-shell>:not(#vqr-cx-workbench),body.printing-packet #vqr-cx-workbench>:not(.cx-work-area){display:none!important}
  body.printing-packet #vqr-cx-workbench{border:0;box-shadow:none;background:white}
  body.printing-packet #cx-work-area{padding:0}
  body.printing-packet .cx-packet-export,body.printing-packet #cx-work-area button{display:none!important}
  body.printing-packet .cx-two{display:block!important}
  body.printing-packet .cx-side{border-left:0!important;padding-left:0!important}
  body.printing-packet details{break-inside:avoid}
  body.printing-packet .cx-table-wrap{overflow:visible!important}
  body.printing-packet table{font-size:9pt!important}
}
