/* Shared navigation for the service exploration preview. */
.eap-header { z-index: 80; }
.eap-header .primary-nav { min-height: 78px; position: relative; display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.eap-header .brand { flex-shrink: 0; white-space: nowrap; }
.eap-header .brand span:last-child { max-width: none; }
.eap-header .nav-links { display: flex; align-items: center; gap: 23px; font-size: 14px; font-weight: 750; }
.eap-header .nav-links > a { text-decoration: none; }
.eap-header .button.compact { font-size: 14px; min-height: 44px; width: auto; padding: 12px 16px; white-space: nowrap; }
.eap-header .menu-button { display: none; min-height: 44px; padding: 8px 14px; color: var(--navy); background: white; border: 1px solid var(--line); border-radius: 9px; font: inherit; font-weight: 750; }
.services-dropdown { margin: 0; padding: 0; border: 0; background: transparent; }
.services-dropdown > summary { display: flex; align-items: center; gap: 9px; min-height: 44px; padding: 0; color: var(--ink); cursor: pointer; list-style: none; font-size: 14px; font-weight: 800; }
.services-dropdown > summary::-webkit-details-marker { display: none; }
.services-dropdown > summary::after { content: none; }
.dropdown-chevron { width: 7px; height: 7px; border-bottom: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); }
.services-dropdown[open] .dropdown-chevron { transform: rotate(225deg) translate(-2px,-1px); }
.services-dropdown[open] > summary { color: var(--blue); }
.services-panel { max-height: calc(100dvh - 80px); overflow-y: auto; position: absolute; top: calc(100% - 1px); right: 0; width: min(760px, 100%); padding: 28px; color: var(--ink); background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--blue); border-radius: 0 0 18px 18px; box-shadow: 0 22px 42px rgba(6,26,56,.17); }
.services-menu-label { margin: 0 0 15px; color: var(--muted); font-size: 14px; font-weight: 600; }
.services-menu-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.services-menu-grid > a { display: flex; flex-direction: column; gap: 7px; min-height: 102px; padding: 17px; text-decoration: none; border: 1px solid transparent; border-radius: 10px; }
.services-menu-grid > a:first-child { background: #edf5ff; border-color: #cfe3ff; }
.services-menu-grid > a:hover, .services-menu-grid > a:focus-visible { background: #f0f5fa; border-color: #b8cfeb; }
.services-menu-grid strong { font-size: 16px; line-height: 1.3; }
.services-menu-grid span { color: var(--muted); font-size: 14px; font-weight: 450; line-height: 1.45; }
.services-menu-grid [aria-current=page] strong::after { content: ' ·'; color: var(--blue); }
.eap-header a:focus-visible, .eap-header button:focus-visible, .eap-header summary:focus-visible { outline: 3px solid var(--teal); outline-offset: 3px; }
.mobile-subnav { display: none !important; }

/* Restored service content uses the current site's palette and type. */
.service-page section { padding-block: 84px; }
.service-page .container { width: min(calc(100% - 40px), 1160px); margin-inline: auto; }
.service-page .practice-hero, .service-page .private-ai-hero { color: #fff; background: linear-gradient(120deg,#031027,#0a3158); }
.service-page .practice-hero-grid { display: grid; grid-template-columns: 1.5fr 1fr; align-items: center; gap: 64px; }
.service-page h1 { max-width: 950px; font-size: clamp(3rem,4.6vw,4.85rem); line-height: 1.04; letter-spacing: -.045em; }
.service-page h2 { font-size: clamp(2rem,3.4vw,3.25rem); line-height: 1.1; letter-spacing: -.035em; }
.service-page h3 { font-size: 1.4rem; line-height: 1.2; }
.service-page .hero-subhead { max-width: 820px; color: #d8e7f8; font-size: 1.2rem; }
.service-page .practice-hero .eyebrow, .service-page .private-ai-hero .eyebrow { color: var(--teal); }
.service-page .eyebrow { font-size: 14px; letter-spacing: .12em; }
.service-page .button-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.service-page .button-row .button { font-size: 16px; }
.service-page .practice-summary { padding: 32px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.2); border-radius: 18px; }
.service-page .practice-summary h2 { font-size: 1.5rem; }
.service-page .practice-summary p { margin-bottom: 0; color: #d8e7f8; }
.service-page .section-intro { max-width: 850px; margin-bottom: 34px; }
.service-page .section-intro > p:last-child { color: var(--muted); font-size: 1.1rem; }
.service-page .practice-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.service-page .service-card { padding: 30px; background: #fff; border: 1px solid var(--line); border-radius: 16px; }
.service-page .service-card p { color: var(--muted); margin: 0; }
.service-page .practice-method { background: #eaf1f9; }
.service-page .offer-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.service-page .offer-card { padding: 32px; background: #fff; border: 1px solid var(--line); border-radius: 18px; }
.service-page .offer-card li { margin-bottom: 10px; }
.service-page .service-label { color: #126fc9; font-size: 14px; font-weight: 800; }
.service-page .hero-points { display: flex; flex-wrap: wrap; gap: 10px; margin-block: 28px; }
.service-page .hero-points span { padding: 9px 13px; border: 1px solid #3e6289; border-radius: 8px; font-size: 14px; }
.service-page .architecture-flow { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.service-page .architecture-flow article { padding: 28px; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.service-page .architecture-flow article > span { display: inline-grid; place-items: center; width: 36px; height: 36px; margin-bottom: 24px; background: var(--teal); color: var(--navy); border-radius: 50%; font-weight: 800; }
.service-page .honest-scope { margin-top: 28px; padding: 24px; background: #eaf1f9; border-left: 4px solid var(--blue); border-radius: 8px; }
.service-page .final-cta { background: var(--navy); color: #fff; }
.service-page .final-cta-inner { display: grid; grid-template-columns: 1.5fr 1fr; gap: 48px; align-items: center; }
.service-page .final-cta p { color: #d8e7f8; }
.service-page .final-cta .eyebrow { color: var(--teal); }
.service-page .cta-panel { display: grid; gap: 18px; justify-items: start; }
.service-page .email-link { color: #c3e8ff; }
.service-page .school-photo { margin: 0; }
.service-page .school-photo img { border-radius: 16px; width: 100%; }
.service-page .school-photo figcaption { margin-top: 14px; color: #c7d8ea; font-size: 14px; }
.service-page .related-service { margin-top: 28px; display: inline-flex; color: #0963b8; font-weight: 750; }
.service-page .method-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 18px; }
.service-page .method-grid article { border-top: 3px solid var(--teal); padding-top: 24px; }
.service-page .method-grid p { color: var(--muted); font-size: 16px; }

@media (max-width:1100px) {
  .eap-header .menu-button { display: inline-flex; flex-shrink: 0; }
  .eap-header .nav-links { display: none; position: absolute; left: -1px; right: -1px; top: 100%; flex-direction: column; align-items: stretch; gap: 4px; max-height: calc(100dvh - 80px); overflow-y: auto; padding: 18px; background: #fff; border: 1px solid var(--line); border-radius: 0 0 14px 14px; box-shadow: 0 18px 40px rgba(6,26,56,.15); }
  .eap-header .nav-links.is-open { display: flex; }
  .eap-header .nav-links > a, .eap-header .nav-links a:not(.button) { display: flex; }
  .eap-header .nav-links > a:not(.button), .services-dropdown > summary { min-height: 46px; padding: 10px 12px; }
  .services-panel { max-height: none; overflow-y: visible; position: static; width: 100%; box-shadow: none; border: 0; border-radius: 8px; padding: 10px 0; }
  .services-menu-label { padding-inline: 12px; }
  .eap-header .button.compact { margin-top: 8px; }
  .service-page .practice-hero-grid { grid-template-columns: 1fr; gap: 36px; }
  .service-page .method-grid { grid-template-columns: repeat(3,1fr); }
}
@media (max-width:680px) {
  .eap-header .primary-nav { min-height: 72px; gap: 12px; }
  .eap-header .brand { gap: 10px; font-size: 14px; }
  .eap-header .mark { width: 36px; flex-shrink: 0; }
  .services-menu-grid { grid-template-columns: 1fr; }
  .services-menu-grid > a { min-height: 86px; padding: 14px 12px; }
  .service-page section { padding-block: 58px; }
  .service-page .container { width: calc(100% - 32px); }
  .service-page h1 { font-size: clamp(2.6rem,10.5vw,3.5rem); }
  .service-page .practice-grid, .service-page .offer-grid, .service-page .architecture-flow, .service-page .final-cta-inner { grid-template-columns: 1fr; }
  .service-page .method-grid { grid-template-columns: 1fr 1fr; }
  .service-page .button-row { flex-direction: column; }
  .service-page .button { width: 100%; }
}
@media (max-width:359px) { .eap-header .brand span:last-child { max-width: 130px; white-space: normal; line-height: 1.15; } }

/* Broader homepage with the focused quote service featured directly below the hero. */
.featured-quote { background: #eef4fb; }
.featured-quote-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 48px; align-items: center; }
.featured-quote-grid h2 { font-size: clamp(2rem,3.6vw,3.2rem); line-height: 1.1; letter-spacing: -.035em; }
.featured-quote-card { padding: 32px; background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 14px 40px rgba(7,21,51,.06); }
.featured-quote-card h3 { font-size: 1.4rem; line-height: 1.3; }
.featured-quote-card p { color: var(--muted); font-size: 15px; }
.featured-quote-card .featured-total { color: var(--navy); font-size: 2rem; font-weight: 850; margin-block: 22px 0; }
@media(max-width:800px) { .featured-quote-grid { grid-template-columns: 1fr; gap: 28px; } }

/* Keep the saved whiteboard composition and its positioned labels aligned.
   Generic photo minimum heights and independent parallax crop this diagram. */
.handoff-feature .handoff-visual { aspect-ratio: 1672 / 941; }
.handoff-feature .handoff-visual img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: contain;
  transform: none;
}
