/* Shared service entries and detail pages. Uses the site's existing brand tokens. */
[hidden] { display: none !important; }
:where(a,button,summary):focus-visible { outline: 3px solid var(--primary-darker); outline-offset: 4px; }
.nav__menu > li { flex: 0 0 auto; }
.nav__menu > li > a, .nav-services__parent > a { white-space: nowrap; }
.nav-services { position: relative; }
.nav-services__parent { display: flex; align-items: center; }
.nav-services__parent > a { padding-right: 4px; }
.nav-services__toggle { display: inline-flex; align-items: center; justify-content: center; min-width: 32px; min-height: 44px; padding: 0 6px; border: 0; border-radius: 6px; background: transparent; color: var(--primary-darker); cursor: pointer; font-size: 22px; }
.nav-services__toggle:hover, .nav-services__toggle[aria-expanded="true"] { background: var(--bg-alt); }
.nav-services__toggle span { transition: transform .2s; }
.nav-services__toggle[aria-expanded="true"] span { transform: rotate(180deg); }
.nav-services__submenu { position: absolute; top: 100%; left: 0; z-index: 60; min-width: 236px; padding: 8px; margin: 0; list-style: none; background: #fff; border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-md); }
.nav-services__submenu a { display: block; white-space: nowrap; padding: 12px 16px; }
.nav-services__submenu a:hover, .nav-services__submenu a[aria-current="page"] { background: var(--bg-alt); color: var(--primary-darker); }
/* Use a compact desktop header; longer menus switch to the existing mobile pattern. */
@media (min-width: 1201px) {
 .nav__brand { gap: 6px; }
 .nav__brand-text { font-size: 15px; letter-spacing: 0; }
 .nav__brand img { height: 34px; }
 .nav__menu { gap: 0; }
 .nav__menu > li > a { padding-left: 10px; padding-right: 10px; }
 .nav-services__parent > a { padding-left: 10px; }
 .nav__menu .nav__cta { margin-left: 6px; padding: 9px 14px !important; }
}
@media (max-width: 1200px) {
 :root { --header-h: 64px; }
 .site-header { height: var(--header-h); }
 .nav { gap: 8px; }
 .nav__brand { flex: 1 1 auto; min-width: 0; gap: 8px; overflow: hidden; position: relative; z-index: 50; }
 .nav__brand img { height: 30px; width: auto; flex: 0 0 auto; }
 .nav__brand-text { font-size: 13px; letter-spacing: .2px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
 .nav__toggle { display: flex; flex-direction: column; align-items: center; justify-content: center; flex: 0 0 auto; margin-left: auto; position: relative; z-index: 50; }
 .nav__menu { position: fixed; top: var(--header-h); left: 0; right: 0; background: #fff; flex-direction: column; align-items: stretch; gap: 0; padding: 12px 0 24px; border-bottom: 1px solid var(--border); box-shadow: var(--shadow); transform: translateY(-110%); opacity: 0; visibility: hidden; pointer-events: none; max-height: calc(100dvh - var(--header-h)); overflow-y: auto; z-index: 40; }
 .nav__menu.is-open { transform: translateY(0); opacity: 1; visibility: visible; pointer-events: auto; }
 .nav__menu a { padding: 14px 24px; border-radius: 0; }
 .nav__menu > li > a { display: block; }
 .nav__menu a.is-active::after { display: none; }
 .nav__menu .nav__cta { margin: 8px 24px 0; text-align: center; display: block; width: auto; }
 .nav-services__parent > a { flex: 1; }
 .nav-services__toggle { width: 48px; margin-right: 16px; }
 .nav-services__submenu { position: static; min-width: 0; margin: 0 20px 8px; padding: 4px; box-shadow: none; border-radius: 8px; background: var(--bg-alt); }
 .nav-services__submenu a { padding: 12px 16px; }
}
.featured-services { margin-bottom: 36px; }
.featured-services__heading { margin-bottom: 20px; }
.featured-services__heading h2 { color: var(--primary-darker); font-size: 26px; }
.featured-services__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.featured-card { padding: 30px; border: 1px solid var(--border); border-top: 4px solid var(--primary); border-radius: var(--radius-lg); background: linear-gradient(140deg,#f4fbff,#fff); display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.featured-card:nth-child(2) { border-top-color: var(--accent); }
.featured-card__tag { font-size: 13px; color: var(--primary-darker); font-weight: 600; letter-spacing: 1px; }
.featured-card h3 { margin: 12px 0; font-size: 26px; color: var(--primary-darker); }
.featured-card p { color: var(--text-soft); line-height: 1.9; margin-bottom: 24px; }
.featured-card__link { display: inline-block; margin-top: auto; color: var(--primary-darker); font-weight: 700; text-underline-offset: 4px; }
.featured-card__link:hover { text-decoration: underline; }
.featured-section { padding-bottom: 0; }
.featured-section .featured-services { margin-bottom: 0; }
.featured-related { margin-top: 40px; padding: 24px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg-alt); }
.featured-related h2 { font-size: 20px; margin-bottom: 12px; }
.featured-related a { color: var(--primary-darker); font-weight: 600; }
.service-detail { overflow-wrap: anywhere; }
.service-hero { text-align: left; background: linear-gradient(120deg,#006ca8,#007f9d); }
.service-hero h1 { font-size: clamp(30px,3.6vw,46px); line-height: 1.3; max-width: 1000px; }
.service-eyebrow { display: block; color: #bceff3; margin: 24px 0 12px; font-size: 14px; letter-spacing: 2px; }
.service-hero .service-lead { max-width: 840px; font-size: 18px; color: #eefbff; line-height: 1.9; }
.service-actions { display: flex; flex-wrap: wrap; gap: 14px; margin: 26px 0 18px; }
.service-actions .btn { white-space: normal; text-align: center; }
.service-hero .service-hero__note { font-size: 14px; color: #fff; max-width: 880px; padding: 14px 18px; border-left: 3px solid #6be8df; background: rgba(0,0,0,.13); }
.service-section { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,2fr); gap: 60px; align-items: start; }
.service-section__title { margin-bottom: 28px; }
.service-section__title h2 { color: var(--primary-darker); font-size: clamp(24px,2.5vw,30px); line-height: 1.5; margin: 8px 0 14px; }
.service-section__title p { color: var(--text-soft); }
.service-copy { line-height: 1.95; }
.service-copy > p + p { margin-top: 20px; }
.service-question-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; }
.service-question-grid li { background: #fff; border: 1px solid var(--border); border-radius: var(--radius); padding: 24px; }
.service-question-grid h3 { font-size: 18px; color: var(--primary-darker); margin-bottom: 12px; }
.service-question-grid p { color: var(--text-soft); }
.service-note { margin-top: 24px; padding: 22px 24px; background: #eaf6fa; border-left: 3px solid var(--primary-darker); border-radius: 0 8px 8px 0; color: var(--text-soft); line-height: 1.9; }
.service-note strong, .service-note h3 { color: var(--primary-darker); }
.service-note p + p { margin-top: 14px; }
.service-test-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); list-style: none; padding: 0; margin: 0; gap: 14px; }
.service-test-grid li { padding: 18px; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; font-weight: 600; }
.service-test-grid li::before { content: '✓'; color: var(--primary-darker); padding-right: 8px; }
.service-steps { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 16px; list-style: none; padding: 0; margin: 32px 0; counter-reset: step; }
.service-steps--six { grid-template-columns: repeat(6,minmax(0,1fr)); }
.service-steps li { border-top: 2px solid var(--border); padding-top: 16px; color: var(--text-soft); }
.service-steps li::before { counter-increment: step; content: '0' counter(step); display: block; font-size: 26px; color: var(--primary-darker); font-weight: 700; margin-bottom: 10px; }
.service-two-col { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.service-panel { padding: 28px; background: #fff; border-radius: var(--radius); border: 1px solid var(--border); line-height: 1.9; }
.service-panel h3 { margin-bottom: 14px; color: var(--primary-darker); }
.service-panel ul,.service-checklist { padding-left: 24px; }
.service-checklist li { padding: 6px 0; }
.service-faq { margin-top: 24px; }
.service-faq > h3 { margin: 24px 0 16px; color: var(--primary-darker); }
.service-faq details { border-bottom: 1px solid var(--border); }
.service-faq summary { padding: 20px 4px; font-size: 17px; font-weight: 600; cursor: pointer; }
.service-faq details p { padding: 0 4px 20px; color: var(--text-soft); line-height: 1.9; }
.service-bottom { border-top: 1px solid var(--border); background: linear-gradient(120deg,#edf9ff,#eafafa); }
.service-bottom__inner { display: grid; grid-template-columns: minmax(0,1fr) 240px; gap: 48px; align-items: center; }
.service-bottom h2 { font-size: clamp(26px,3vw,34px); color: var(--primary-darker); margin: 12px 0; }
.service-bottom__qr { text-align: center; font-size: 13px; color: var(--text-soft); }
.service-bottom__qr .contact-qr-pair { justify-content: center; }
.service-contact { display: flex; flex-wrap: wrap; gap: 8px 24px; color: var(--primary-darker); }
#application-materials,#business-inquiry { scroll-margin-top: calc(var(--header-h) + 24px); }
@media (max-width: 900px) {
 .service-section { grid-template-columns: 1fr; gap: 8px; }
 .service-steps,.service-steps--six { grid-template-columns: repeat(3,minmax(0,1fr)); }
 .service-bottom__inner { grid-template-columns: 1fr; gap: 24px; }
 .service-bottom__qr { max-width: 280px; text-align: left; }
}
@media (max-width: 600px) {
 .featured-services__grid,.service-question-grid,.service-two-col { grid-template-columns: 1fr; }
 .featured-card { padding: 24px; }
 .featured-card h3 { font-size: 23px; }
 .service-detail .section { padding-top: 44px; padding-bottom: 44px; }
 .service-test-grid,.service-steps,.service-steps--six { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .service-hero .service-lead { font-size: 16px; }
 .service-hero .service-hero__note { padding: 12px 14px; }
 .service-actions .btn { width: 100%; }
 .service-note,.service-panel { padding: 20px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .nav-services__toggle span { transition: none; } }

.service-hero .breadcrumb { justify-content: flex-start; flex-wrap: wrap; }
.service-hero p { margin-left: 0; margin-right: 0; }
.service-bottom__qr .qr-pair { justify-content: flex-start; }

.service-hero h1 { text-wrap: balance; }
@media (max-width: 600px) {
 .service-hero { padding-top: calc(var(--header-h) + 36px); padding-bottom: 44px; }
}
@media (max-width: 1300px) {
 /* Keep shortcuts available without covering text on phones and tablets. */
 .service-page .float-actions { position: static; flex-direction: row; justify-content: center; padding: 20px; background: var(--bg-alt); }
}
