.portal-showcase { background: #18193e; color: #fff; padding: 76px 0 0; }
.portal-showcase-intro { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); gap: 76px; align-items: end; padding-bottom: 52px; }
.portal-product-label { color: #00dfa2; font-size: 15px; font-weight: 700; margin-bottom: 18px; }
.portal-product-logo { display: block; width: clamp(230px, 26vw, 340px); max-width: 100%; height: auto; margin: 0 0 28px; }
.portal-showcase h1 { font-size: clamp(2.8rem,4.7vw,4.8rem); line-height: 1.07; letter-spacing: -.03em; margin: 0; }
.portal-showcase-copy > p { color: #d8deeb; max-width: 54ch; font-size: 17px; }
.portal-showcase-copy .portal-access-note { font-size: 13px; margin: 20px 0 0; color: #c7cede; }
.portal-entry { background: #00dfa2; color: #18193e; border-color: #00dfa2; box-shadow: none; }
.portal-entry:hover { background: #b7fbe7; border-color: #b7fbe7; color: #18193e; }
.portal-screen { margin: 0; border: 1px solid #d7dce3; background: #fff; }
.portal-screen a { display: block; cursor: zoom-in; }
.portal-screen img { display: block; width: 100%; height: auto; aspect-ratio: 1900 / 900; object-fit: contain; background: #f5f7f9; }
.portal-screen figcaption { display: flex; justify-content: space-between; gap: 20px; padding: 16px 22px; color: #536071; font-size: 13px; border-top: 1px solid #e6e9ee; }
.portal-screen-hero { border: 0; }
.portal-screen-hero figcaption { background: #18193e; border-top: 1px solid #45465f; color: #d7deeb; }
.portal-section-nav { border-bottom: 1px solid #d7dce3; background: #fff; }
.portal-section-nav .shell { display: flex; gap: 12px 28px; flex-wrap: wrap; padding-block: 22px; }
.portal-section-nav a { text-decoration: none; font-size: 14px; font-weight: 700; padding-block: 6px; }
.portal-section-nav a:hover { text-decoration: underline; text-underline-offset: 6px; }
.portal-overview-copy { padding: 72px 0; }
.portal-overview-copy .shell { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 24px 76px; }
.portal-overview-copy h2 { font-size: clamp(2.2rem,3.3vw,3.3rem); line-height: 1.1; margin: 0; }
.portal-overview-copy p { max-width: 65ch; color: #536071; margin: 0; }
.portal-overview-copy .portal-demo-notice { grid-column: 1/-1; max-width: none; padding-top: 24px; border-top: 1px solid #d7dce3; font-size: 13px; }
.portal-feature { padding: 88px 0; scroll-margin-top: 140px; }
.portal-accounting { padding: 80px 0; background: #18193e; color: #fff; scroll-margin-top: 140px; }
.portal-accounting-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 76px; align-items: start; }
.portal-accounting h2 { margin: 0 0 28px; max-width: 20ch; font-size: clamp(2.2rem, 3.6vw, 3.6rem); line-height: 1.15; letter-spacing: -.025em; color: #fff; text-wrap: balance; }
.portal-accounting p { margin: 0; max-width: 65ch; color: #d8deeb; font-size: 16px; line-height: 1.8; }
.portal-accounting h3 { margin: 0 0 12px; color: #fff; font-family: var(--body); font-size: 20px; font-weight: 700; line-height: 1.4; text-wrap: balance; }
.portal-accounting-details > div + div { margin-top: 28px; padding-top: 28px; border-top: 1px solid #45465f; }
.portal-feature-soft { background: #eaedef; }
.portal-feature-heading { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 76px; margin-bottom: 38px; align-items: start; }
.portal-feature h2 { font-size: clamp(2.4rem,3.8vw,3.8rem); line-height: 1.08; margin: 0; text-wrap: balance; }
.portal-feature-heading p { color: #536071; max-width: 60ch; }
.portal-feature-heading ul { margin: 24px 0 0; padding-left: 20px; }
.portal-feature-heading li { margin-top: 8px; }
.portal-access-guide { padding: 88px 0; background: #f4f6f8; }
.portal-access-guide > .shell { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 76px; }
.portal-access-guide h2 { font-size: clamp(2.2rem,3vw,3rem); line-height: 1.15; }
.portal-access-guide p { color: #536071; max-width: 65ch; }
.portal-access-questions details { border-top: 1px solid #cdd3dc; padding: 20px 0; }
.portal-access-questions summary { cursor: pointer; font-weight: 700; min-height: 30px; }
.portal-access-questions details p { padding-top: 18px; margin: 0; }
.portal-screen-dialog { width: min(96vw,1600px); max-width: none; max-height: 94dvh; padding: 20px; border: 1px solid #bfc7d4; background: #fff; color: #18193e; }
.portal-screen-dialog::backdrop { background: rgba(16,17,39,.8); }
.portal-screen-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-bottom: 16px; }
.portal-screen-toolbar h2 { margin: 0; font-family: var(--body); font-size: 18px; }
.portal-screen-toolbar button { min-height: 44px; padding: 8px 16px; border: 1px solid #cdd3dc; background: #fff; color: #18193e; cursor: pointer; }
.portal-screen-scroll { overflow: auto; max-height: 72dvh; }
.portal-screen-scroll img { width: 1900px; max-width: none; height: auto; }
.portal-screen-dialog > p { font-size: 13px; margin: 14px 0 0; }
@media (max-width: 800px) {
  .portal-accounting { padding-block: 52px; }
  .portal-accounting-inner { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .portal-showcase { padding-top: 46px; }
  .portal-showcase-intro, .portal-overview-copy .shell, .portal-feature-heading, .portal-access-guide > .shell { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .portal-showcase-intro { padding-bottom: 34px; }
  .portal-showcase-copy > p { font-size: 16px; }
  .portal-showcase h1 { font-size: clamp(2.4rem,8.8vw,3.6rem); }
  .portal-section-nav .shell { gap: 4px 24px; padding-block: 16px; }
  .portal-section-nav a { min-height: 44px; display: inline-flex; align-items: center; }
  .portal-screen figcaption { flex-direction: column; gap: 4px; padding: 12px 16px; }
  .portal-overview-copy, .portal-feature, .portal-access-guide { padding-block: 52px; }
  .portal-screen-dialog { padding: 12px; }
  .portal-screen-scroll img { width: 1200px; }
}
.portal-presentation-page .portal-showcase { padding-top: 48px; }
.portal-presentation-page .portal-showcase-intro { gap: 48px; padding-bottom: 32px; }
.portal-presentation-page .portal-showcase h1 { font-size: clamp(2.25rem, 4vw, 3.5rem); }
.portal-presentation-page .portal-product-logo { width: 240px; margin-bottom: 24px; }
.portal-presentation-page .portal-screen-hero { max-width: 880px; margin-inline: auto; }
.portal-accounting-link { display: inline-flex; align-items: center; min-height: 44px; margin-top: 12px; color: #d8deeb; font-size: 14px; text-underline-offset: 4px; }
.portal-presentation-page .portal-accounting { padding-block: 64px; background: #fff; color: #18193e; }
.portal-presentation-page .portal-accounting h2 { color: #18193e; font-size: clamp(2rem, 3vw, 2.75rem); }
.portal-presentation-page .portal-accounting p { color: #536071; }
.portal-accounting-details > p + p { margin-top: 24px; }
.portal-gallery { padding-block: 64px; background: #f4f6f8; }
.portal-gallery > .shell { max-width: 1100px; }
.portal-gallery h2 { margin-bottom: 16px; font-size: clamp(2rem, 3vw, 2.75rem); }
.portal-gallery-intro { margin-bottom: 24px; color: #536071; }
.portal-gallery-categories { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.portal-gallery-categories button { min-height: 44px; padding: 12px 20px; border: 1px solid #bfc7d4; border-radius: 4px; background: transparent; color: #18193e; font-weight: 700; cursor: pointer; }
.portal-gallery-categories button[aria-pressed="true"] { background: #18193e; border-color: #18193e; color: #fff; }
.portal-gallery-choices { display: flex; gap: 12px; overflow-x: auto; padding: 4px 4px 12px; margin-inline: -4px; }
.portal-gallery-choice { flex: 0 0 160px; display: flex; flex-direction: column; gap: 8px; padding: 8px; border: 1px solid #cdd3dc; border-radius: 4px; background: #fff; color: #18193e; text-decoration: none; font-size: 13px; line-height: 1.5; }
.portal-gallery-choice img { width: 100%; height: auto; aspect-ratio: 1900 / 900; object-fit: contain; }
.portal-gallery-choice[aria-current] { border-color: #18193e; outline: 2px solid #18193e; outline-offset: -2px; }
.portal-gallery-choice:hover { background: #eaedef; }
.portal-gallery :is(a, button):focus-visible { outline: 3px solid #00876b; outline-offset: 2px; }
.portal-gallery-panel { padding-top: 24px; }
.portal-gallery-copy { display: flex; flex-direction: column; gap: 12px; margin-bottom: 24px; }
.portal-gallery-copy h3 { margin: 0; font-family: var(--body); font-size: clamp(1.125rem, 2vw, 1.5rem); line-height: 1.4; }
.portal-gallery-copy p { margin: 0; max-width: 75ch; font-size: 16px; color: #536071; line-height: 1.75; }
.portal-gallery .portal-demo-notice { margin: 24px 0 0; font-size: 13px; line-height: 1.75; color: #536071; }
.portal-gallery [hidden] { display: none; }
.portal-gallery-status { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; clip-path: inset(50%); overflow: hidden; white-space: nowrap; }
.portal-presentation-page .portal-access-guide { padding-block: 64px; background: #fff; }
.portal-access-guide .actions { margin-top: 24px; }
@media (max-width: 800px) {
  .portal-presentation-page .portal-showcase-intro { gap: 24px; }
  .portal-presentation-page .portal-showcase,
  .portal-presentation-page .portal-accounting,
  .portal-presentation-page .portal-access-guide,
  .portal-gallery { padding-top: 40px; }
  .portal-presentation-page .portal-accounting,
  .portal-presentation-page .portal-access-guide,
  .portal-gallery { padding-bottom: 40px; }
  .portal-gallery-categories button { padding: 10px 12px; font-size: 14px; }
  .portal-gallery-choice { flex-basis: 136px; }
}
