/* Both pages use the existing theme. Navigation remains available on small screens. */
.site-header { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); height: auto; min-height: 96px; gap: 24px 12px; padding-top: 20px; padding-bottom: 16px; }
.site-header > .brand { grid-column: 1; grid-row: 1; justify-self: start; }
.header-home { grid-column: 2; grid-row: 1; justify-self: center; padding: 10px 0; font-size: 13px; }
.site-header > .login-link { grid-column: 3; grid-row: 1; justify-self: end; }
.site-header nav { grid-column: 1 / -1; grid-row: 2; display: flex; width: 100%; justify-content: space-between; flex-wrap: wrap; gap: 12px 22px; white-space: normal; overflow: visible; padding: 0; }
.site-header nav a { padding: 8px 0; }
.site-header nav a[aria-current="page"], .header-home[aria-current="page"], .header-home:hover { text-decoration: underline; text-underline-offset: 7px; text-decoration-thickness: 2px; font-weight: 700; }
.products-intro { padding-top: 80px; padding-bottom: 80px; }
.products-intro h1 { font-size: clamp(48px, 7vw, 104px); line-height: .96; letter-spacing: -.025em; }
.products-intro h1 span { color: #53692f; }
.products-lead { max-width: 610px; font-size: 18px; color: var(--muted); margin: 28px 0; }
.products-offerings { background: #e7eada; border-block: 1px solid var(--line); }
.products-page .offering-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; background: transparent; border: 0; color: var(--ink); }
.offering-detail { background: var(--paper); border: 1px solid var(--line); display: flex; flex-direction: column; min-width: 0; }
.offering-detail figure { margin: 0; }
.offering-detail img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.offering-detail figcaption { padding: 10px 24px 0; font-size: 12px; color: var(--muted); }
.offering-body { padding: 28px; display: flex; flex-direction: column; flex: 1; }
.offering-body h3 { font-size: 42px; margin-bottom: 18px; }
.offering-body .eyebrow { margin-bottom: 16px; }
.offering-body dl { margin: 0 0 28px; }
.offering-body dt { font-weight: 700; border-top: 1px solid var(--line); padding-top: 16px; }
.offering-body dd { margin: 6px 0 18px; color: var(--muted); }
.offering-body .button { margin-top: auto; align-self: flex-start; }
.products-focus .program-card h3 { min-height: 100px; }
.products-focus .program-card > p:not(.eyebrow) { font-size: 14px; }
@media (max-width: 1000px) {
  .site-header nav { order: 3; width: 100%; }
  .products-focus .program-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .products-focus .program-card { border-bottom: 1px solid var(--line); }
}
@media (max-width: 760px) {
  .site-header nav { display: flex; gap: 4px 20px; font-size: 13px; }
  .site-header { min-height: 80px; }
  .products-intro { padding-top: 48px; padding-bottom: 48px; }
  .products-page .offering-grid { grid-template-columns: 1fr; }
  .offering-body { padding: 24px; }
  .products-lead { font-size: 16px; }
}
@media (max-width: 480px) {
  .site-header { padding-left: 4%; padding-right: 4%; column-gap: 6px; }
  .site-header > .brand { font-size: 9px; gap: 4px; }
  .site-header .brand-mark { font-size: 28px; }
  .site-header .brand small { font-size: 5px; letter-spacing: 1px; }
  .site-header .login-link { font-size: 10px; gap: 6px; }
  .site-header nav { gap: 4px 16px; }
  .products-focus .program-grid { grid-template-columns: 1fr; }
  .products-focus .program-card h3 { min-height: 0; }
  .products-focus .program-card { border-right: 0; }
}

/* Service imagery keeps the same frame as the software and program cards. */
.offering-detail img { display: block; }
.consulting-image img { object-fit: contain; background: #fff; }
.consulting-image > a { display: block; }
.consulting-image a:focus-visible { outline: 3px solid var(--ink); outline-offset: -3px; }
.consulting-image figcaption a { text-decoration: underline; text-underline-offset: 3px; }
.coaching-image img { object-position: center 55%; }

/* Inquiry journey revision: readable navigation and available services first. */
.current-services, .upcoming-services { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.upcoming { background: #e7eada; }
.current-services .offering-card:last-child, .upcoming-services .offering-card:last-child { border-right: 0; }
.current-services .offering-card h3, .upcoming-services .offering-card h3 { min-height: 2.2em; }
.portfolio-return { font-size: 14px; text-decoration: underline; text-underline-offset: 4px; }
.site-header .header-home, .site-header .contact-link, .site-header nav a { font-size: 14px; min-height: 44px; display: inline-flex; align-items: center; }
.site-header nav { gap: 8px 20px; }
.inquiry-handoff { font-size: 15px; line-height: 1.7; margin: 0; }
.inquiry-handoff a, .result-next-step a { text-decoration: underline; text-underline-offset: 3px; }
.path-form select[aria-invalid="true"] { border: 2px solid #8e202b; }
.result-next-step { padding: 16px; background: #e7eada; }
.offering-featured .offering-icon { color: var(--ink); }
@media (max-width: 760px) {
  .site-header { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 14px; padding: 16px 6%; }
  .site-header > .brand { grid-column: 1; grid-row: 1; font-size: 13px; gap: 8px; }
  .site-header .brand-mark { font-size: 36px; }
  .site-header .brand small { font-size: 7px; }
  .site-header > .login-link { grid-column: 2; grid-row: 1; }
  .header-home { grid-column: 1 / -1; grid-row: 2; justify-self: start; }
  .site-header nav { grid-row: 3; justify-content: flex-start; }
}
@media (max-width: 480px) {
  .current-services, .upcoming-services { grid-template-columns: 1fr; }
  .current-services .offering-card, .upcoming-services .offering-card { border-right: 0; border-bottom: 1px solid #4b5247; }
  .current-services .offering-card:last-child, .upcoming-services .offering-card:last-child { border-bottom: 0; }
  .site-header > .brand { font-size: 11px; }
  .site-header .brand-mark { font-size: 32px; }
  .site-header .brand small { font-size: 6px; }
  .site-header .contact-link { font-size: 14px; gap: 6px; }
}

/* A short inquiry with persistent labels and honest delivery states. */
.inquiry-layout { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 88px); align-items: start; }
.inquiry-intro h1 { font-size: clamp(48px, 6vw, 84px); margin-bottom: 28px; }
.inquiry-intro .eyebrow { margin-bottom: 20px; }
.inquiry-lead { font-size: 19px; }
.inquiry-panel { min-width: 0; padding: 32px; border: 1px solid var(--line); background: #fff; }
.inquiry-panel fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.inquiry-field { margin-bottom: 24px; }
.inquiry-field label { display: block; font-size: 15px; font-weight: 700; margin-bottom: 8px; }
.inquiry-field input, .inquiry-field select, .inquiry-field textarea { display: block; width: 100%; max-width: 100%; min-width: 0; border: 1px solid #929c84; border-radius: 0; background: var(--paper); color: var(--ink); font: inherit; font-size: 16px; padding: 12px; }
.inquiry-field textarea { resize: vertical; min-height: 160px; }
.inquiry-field small { display: block; font-size: 14px; margin-top: 8px; color: #4d5446; }
.inquiry-panel input:focus-visible, .inquiry-panel textarea:focus-visible { outline: 3px solid #53692f; outline-offset: 3px; }
.inquiry-context { padding: 20px; background: #e7eada; margin-bottom: 24px; }
.inquiry-context h2 { font-family: var(--body); font-size: 17px; margin-bottom: 12px; }
.inquiry-context .text-link { min-height: 44px; }
.inquiry-panel [hidden] { display: none !important; }
.inquiry-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.inquiry-privacy, .inquiry-fallback { font-size: 14px; line-height: 1.7; }
.inquiry-privacy a, .inquiry-fallback a { text-decoration: underline; text-underline-offset: 3px; }
.inquiry-fallback { border-top: 1px solid var(--line); padding-top: 24px; margin: 28px 0 0; }
.inquiry-status:empty { display: none; }
.inquiry-status { margin: 18px 0 0; padding: 16px; border-left: 3px solid #53692f; background: #e7eada; }
.inquiry-success h2 { font-size: 42px; margin-bottom: 24px; }
.inquiry-success .text-link { display: block; margin-top: 24px; }
.inquiry-success:focus { outline: 3px solid #53692f; outline-offset: 8px; }
.inquiry-panel .button:disabled { opacity: .6; cursor: not-allowed; }
.inquiry-panel .button + .small-note { margin-top: 14px; }
@media (max-width: 760px) { .inquiry-layout { grid-template-columns: 1fr; } .inquiry-panel { padding: 24px; } }
@media (max-width: 380px) { .inquiry-panel { padding: 18px; } }
