:root { --site-header-height:80px; }
.site-header { position:sticky; top:0; z-index:70; background:#fff; border-bottom:1px solid #e9ece7; }
.header-inner { max-width:1480px; width:calc(100% - 80px); height:var(--site-header-height); display:flex; align-items:center; justify-content:space-between; gap:24px; }
.desktop-nav { display:flex; gap:20px; align-items:center; }
.nav-primary { display:flex; align-items:center; position:relative; height:80px; }
.nav-roll { display:block; position:relative; padding:10px 4px 10px 10px; font-size:16px; font-weight:600; line-height:1.5; white-space:nowrap; }
.nav-roll[href]:hover,.nav-roll[aria-current],.nav-item.is-open .nav-roll { color:var(--green); }
.site-header a[aria-disabled="true"] { cursor:default; }
.site-header .nav-roll[aria-disabled="true"],.site-header .mobile-home[aria-disabled="true"] { color:var(--muted); }
.nav-primary::after { content:''; position:absolute; height:2px; left:10px; right:3px; bottom:16px; background:var(--green); transform:scaleX(0); transform-origin:left; transition:transform .22s ease; }
.nav-item:has(.nav-roll[aria-current]) .nav-primary::after,.nav-item.is-open .nav-primary::after { transform:scaleX(1); }
.nav-letters { display:inline-block; overflow:hidden; height:1.45em; line-height:1.45; vertical-align:middle; }
.nav-letter { display:inline-block; text-shadow:0 1.45em currentColor; transition:transform .35s ease; }
.nav-letter:nth-child(2) { transition-delay:.025s; }
.nav-roll[href]:hover .nav-letter,button.nav-roll:hover .nav-letter,.nav-roll:focus-visible .nav-letter { transform:translateY(-1.45em); }
.nav-disclosure { display:grid; place-items:center; width:25px; height:42px; border:0; background:transparent; padding:0; color:var(--muted); }
.nav-disclosure-full { display:inline-flex; align-items:center; gap:10px; width:auto; height:auto; padding:10px; color:inherit; }
.nav-disclosure > span:not(.nav-letters) { width:6px; height:6px; border-right:1.5px solid; border-bottom:1.5px solid; transform:rotate(45deg) translateY(-2px); transition:transform .2s; }
.nav-item.is-open .nav-disclosure { color:var(--green); }
.nav-item.is-open .nav-disclosure > span:not(.nav-letters) { transform:rotate(225deg) translate(-1px,-1px); }
.nav-panel { position:absolute; top:calc(100% - 1px); width:min(1080px,calc(100vw - 80px)); left:50%; transform:translate(-50%,10px); background:#fff; border:1px solid #e6e9e5; border-radius:20px; box-shadow:0 24px 64px #203b3020,0 4px 12px #203b3009; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .2s ease,transform .2s ease; max-height:calc(100dvh - 106px); overflow:auto; overscroll-behavior:contain; }
.nav-item.is-open .nav-panel,html:not(.has-js) .nav-item:hover .nav-panel,html:not(.has-js) .nav-item:focus-within .nav-panel { opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,0); }
/* Course and product panels share the brand, with different reading rhythms. */
.nav-panel-body { padding:24px; }
.nav-child { display:flex; align-items:center; gap:12px; min-width:0; border:1px solid transparent; border-radius:12px; padding:14px 12px; transition:background .18s,border-color .18s,transform .18s; }
.nav-child:hover { background:#f4f7f2; }
.nav-child[href]:hover { border-color:#c7d9cb; transform:translateY(-2px); }
.nav-child-icon { display:grid; place-items:center; color:var(--green); flex-shrink:0; }
.nav-child-icon .icon { width:22px; height:22px; }
.nav-child-copy { display:block; min-width:0; }
.nav-child strong { display:block; font-size:16px; line-height:1.55; font-weight:600; }
.nav-child-description { display:block; color:var(--muted); font-size:12px; margin-top:9px; line-height:1.8; text-wrap:pretty; }
.nav-group-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
.nav-group h2 { font-size:13px; font-weight:500; letter-spacing:.08em; color:var(--muted); margin:0; }
.nav-group-items { display:grid; gap:8px; }

.nav-panel-chapters { width:min(1160px,calc(100vw - 64px)); }
.nav-panel-chapters .nav-panel-body { display:grid; grid-template-columns:244px minmax(0,1fr); gap:24px; }
.nav-feature { display:flex; flex-direction:column; align-items:flex-start; padding:26px; border-radius:15px; background:var(--green); color:#fff; transition:background .2s; }
.nav-eyebrow { font-size:11px; font-weight:500; letter-spacing:.04em; color:#d8e8dc; }
.nav-feature strong { display:block; margin-top:25px; font-size:27px; line-height:1.55; letter-spacing:.01em; text-wrap:balance; }
.nav-feature p { color:#d3e2dc; font-size:12px; line-height:1.95; margin:18px 0 25px; }
.nav-feature-action { display:block; padding:8px 0; margin-top:auto; font-size:13px; font-weight:600; line-height:1.8; color:#ecdfbd; text-underline-offset:5px; }
.nav-feature:is(:hover,:focus-visible) { background:#124f47; }
.nav-feature:is(:hover,:focus-visible) .nav-feature-action { text-decoration:underline; }
.nav-panel-chapters .nav-groups,.nav-panel-chapters .nav-group { display:flex; flex-direction:column; min-width:0; }
.nav-panel-chapters .nav-group { flex:1; }
.nav-panel-chapters .nav-group-heading { gap:16px; padding:3px 2px 0; }
.nav-panel-chapters .nav-group-heading::after { content:''; height:1px; flex:1; background:var(--line); }
.nav-panel-chapters .nav-group-items { grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; flex:1; }
.nav-panel-chapters .nav-child { position:relative; display:flex; flex-direction:column; align-items:flex-start; padding:21px 16px; background:#f0f5ed; border-color:#e5ece0; }
.nav-panel-chapters .nav-child:nth-child(2) { background:#f8f2e5; border-color:#eee5d2; }
.nav-panel-chapters .nav-child:nth-child(3) { background:#edf3f5; border-color:#e1e9ee; }
.nav-panel-chapters .nav-child:nth-child(4) { background:#e8f1ec; border-color:#d9e8df; }
.nav-chapter-number { display:block; color:#7a9a85; font-size:39px; font-weight:400; line-height:1; letter-spacing:-.06em; }
.nav-panel-chapters .nav-child:nth-child(2) .nav-chapter-number { color:#aa8e54; }
.nav-panel-chapters .nav-child:nth-child(3) .nav-chapter-number { color:#7995a3; }
.nav-panel-chapters .nav-child:nth-child(4) .nav-chapter-number { color:#5f9580; }
.nav-panel-chapters .nav-child-icon { width:30px; height:30px; margin-top:16px; }
.nav-panel-chapters .nav-child-icon .icon { width:26px; height:26px; }
.nav-panel-chapters .nav-child-copy { margin-top:7px; }
.nav-stage { display:block; color:#214d40; font-size:22px; font-weight:650; letter-spacing:.04em; line-height:1.4; }
.nav-topic { display:block; margin-top:6px; font-size:14px; font-weight:500; }
.nav-panel-chapters .nav-child-description { font-size:11px; line-height:1.85; margin-top:13px; }
.nav-panel-chapters .nav-child[href]:hover { border-color:#9eb6a4; transform:translateY(-4px); }

.nav-panel-products { width:min(1160px,calc(100vw - 64px)); }
.nav-panel-products .nav-groups { display:grid; grid-template-columns:2fr 1fr; gap:14px; }
.nav-panel-products .nav-group { display:flex; flex-direction:column; min-width:0; padding:19px 16px 14px; border-radius:15px; background:#f0f5ed; }
.nav-panel-products .nav-group-source { background:#f8f3e8; }
.nav-panel-products .nav-group-service { background:#edf3f4; }
.nav-panel-products .nav-group-heading { margin:0 7px 17px; gap:8px; }
.nav-panel-products .nav-group h2 { color:#284e3e; font-size:17px; font-weight:650; letter-spacing:0; }
.nav-panel-products .nav-group-source h2 { color:#705d36; }
.nav-panel-products .nav-group-service h2 { color:#3d6069; }
.nav-panel-products .nav-group-items { gap:6px; grid-auto-rows:1fr; flex:1; }
.nav-panel-products .nav-group-saas .nav-group-items { grid-template-columns:repeat(2,minmax(0,1fr)); }
.nav-panel-products .nav-child { gap:10px; min-height:70px; padding:12px 7px; align-items:flex-start; }
.nav-panel-products .nav-child-icon { margin-top:2px; }
.nav-panel-products .nav-child-description { font-size:12px; font-weight:400; line-height:1.8; margin-top:6px; }
.nav-panel-products .nav-child-icon { width:36px; height:36px; background:#fff; border:1px solid #e1e9dd; border-radius:10px; }
.nav-panel-products .nav-group-source .nav-child-icon { color:#8c7040; border-color:#eee3d0; }
.nav-panel-products .nav-group-service .nav-child-icon { color:#547680; border-color:#dfe9ec; }
.nav-panel-products .nav-child strong { font-size:14px; font-weight:500; line-height:1.65; overflow-wrap:anywhere; }
.nav-panel-products .nav-child:hover { background:#fff; border-color:#dee6d8; }
.nav-panel-products .nav-group-source .nav-child:hover { border-color:#e9dcc5; }
.nav-panel-products .nav-group-service .nav-child:hover { border-color:#d9e5e7; }

.nav-item[data-nav-item="about"],.nav-item[data-nav-item="help"] { position:relative; }
.nav-panel-help { width:560px; border-radius:18px; }
.nav-panel-help .nav-panel-body { padding:16px; }
.nav-panel-help .nav-group-items { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.nav-panel-help .nav-child { flex-direction:column; align-items:flex-start; padding:22px 20px; background:#f0f5ed; border-color:#e5ece0; }
.nav-panel-help .nav-child:nth-child(2) { background:#f8f3e8; border-color:#eee6d5; }
.nav-panel-help .nav-child:nth-child(3) { background:#e8f1ec; border-color:#d9e8df; }
.nav-panel-help .nav-child:nth-child(4) { background:#edf3f4; border-color:#dfe9eb; }
.nav-panel-help .nav-child-icon { width:40px; height:40px; background:white; border-radius:11px; }
.nav-panel-help .nav-child:nth-child(2) .nav-child-icon { color:#8c7040; }
.nav-panel-help .nav-child:nth-child(4) .nav-child-icon { color:#547680; }
.nav-panel-help .nav-child-description { font-size:14px; line-height:1.8; margin-top:7px; }
.nav-panel-help .nav-child[href]:hover { background:#fff; border-color:#a9c1b0; }
.nav-panel-links { width:420px; border-radius:18px; }
.nav-panel-links .nav-panel-body { padding:16px; }
.nav-panel-links .nav-group-items { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.nav-panel-links .nav-child { display:flex; flex-direction:column; align-items:flex-start; gap:12px; padding:20px 17px; background:#f8f3e8; border-color:#eee6d5; }
.nav-panel-links .nav-child:first-child { grid-column:1/-1; flex-direction:row; align-items:center; padding:22px 20px; background:var(--green); border-color:var(--green); color:white; }
.nav-panel-links .nav-child:last-child { background:#edf3f4; border-color:#dfe9eb; }
.nav-panel-links .nav-child-icon { width:40px; height:40px; background:#fff; border-radius:11px; color:#8c7040; }
.nav-panel-links .nav-child:first-child .nav-child-icon { width:44px; height:44px; color:#f1dfb1; background:#ffffff12; }
.nav-panel-links .nav-child:last-child .nav-child-icon { color:#547680; }
.nav-panel-links .nav-child-description { font-size:12px; line-height:1.85; margin-top:6px; }
.nav-panel-links .nav-child:first-child .nav-child-description { color:#d3e2dc; }
.nav-panel-links .nav-child[href]:hover { border-color:#bca97c; }
.nav-panel-links .nav-child:first-child:hover { background:#124f47; border-color:#124f47; }
.nav-panel-footer { border-top:1px solid #edf0eb; padding:15px 30px; display:flex; align-items:center; justify-content:space-between; font-size:13px; color:var(--green); }
.nav-panel-footer:hover { background:#f8faf6; }
.header-actions { margin-left:8px; flex-shrink:0; }
.header-admin { display:inline-flex; align-items:center; gap:6px; padding:9px 15px; font-size:14px; border:1px solid #d9e3dc; border-radius:24px; white-space:nowrap; min-height:44px; transition:background .2s; }
.header-admin:hover { background:var(--pale-green); }
.header-admin .icon { width:16px; height:16px; }
.menu-toggle { display:none; width:40px; height:40px; align-items:center; justify-content:center; border:1px solid var(--line); border-radius:8px; background:white; flex-shrink:0; }
.mobile-nav { padding:10px 24px 24px; border-top:1px solid var(--line); max-height:calc(100dvh - var(--site-header-height)); overflow:auto; background:white; overscroll-behavior:contain; }
.mobile-nav-group { border-bottom:1px solid var(--line); }
.mobile-nav-group summary,.mobile-home { display:flex; align-items:center; justify-content:space-between; list-style:none; font-size:18px; font-weight:600; padding:17px 4px; cursor:pointer; }
.mobile-nav-group summary::-webkit-details-marker { display:none; }
.mobile-nav-group summary span { color:var(--green); transition:transform .2s; }
.mobile-nav-group[open] summary span { transform:rotate(45deg); }
.mobile-nav-links { padding:0 0 20px; }
.mobile-nav-links a { display:flex; align-items:center; gap:12px; font-size:15px; padding:12px; border-radius:10px; }
.mobile-nav-links a:hover { background:#fff; }
.mobile-menu-section { padding:12px; margin-top:12px; background:#f0f5ed; border-radius:13px; }
.mobile-menu-source { background:#f8f3e8; }
.mobile-menu-service { background:#edf3f4; }
.mobile-menu-section p { font-size:14px; font-weight:600; color:var(--green); margin:2px 10px 8px; }
.mobile-menu-source p { color:#705d36; }
.mobile-menu-service p { color:#3d6069; }
.mobile-child-icon { display:grid; place-items:center; flex-shrink:0; width:34px; height:34px; color:var(--green); background:#fff; border-radius:9px; }
.mobile-child-icon .icon { width:21px; height:21px; }
.mobile-menu-source .mobile-child-icon { color:#8c7040; }
.mobile-menu-service .mobile-child-icon { color:#547680; }
.mobile-nav-links .mobile-overview { margin-top:4px; padding:15px 20px; background:var(--green); color:white; font-weight:600; }
.mobile-nav-layout-chapters .mobile-menu-section { padding:0; background:none; }
.mobile-nav-layout-chapters .mobile-menu-section p { margin:16px 3px 10px; font-size:12px; color:var(--muted); }
.mobile-nav-layout-chapters .mobile-menu-items { display:grid; gap:8px; }
.mobile-nav-layout-chapters .mobile-menu-items a { padding:15px; background:#f0f5ed; }
.mobile-nav-layout-chapters .mobile-menu-items a:nth-child(2) { background:#f8f2e5; }
.mobile-nav-layout-chapters .mobile-menu-items a:nth-child(3) { background:#edf3f5; }
.mobile-nav-layout-chapters .mobile-menu-items a:nth-child(4) { background:#e8f1ec; }
.mobile-chapter-number { flex-shrink:0; width:36px; color:#6e927d; font-size:28px; font-weight:400; line-height:1; }
.mobile-nav-links small { display:block; margin-top:5px; color:var(--muted); font-size:12px; line-height:1.8; overflow-wrap:anywhere; text-wrap:pretty; }
.mobile-nav-layout-products .mobile-menu-items a { align-items:flex-start; }
.mobile-nav-layout-products .mobile-child-icon { margin-top:2px; }
.mobile-nav-links .mobile-menu-items > a > span:last-child { min-width:0; }
.mobile-nav-layout-links .mobile-menu-section { padding:0; background:none; }
.mobile-nav-layout-links .mobile-menu-items { display:grid; gap:8px; }
.mobile-nav-layout-links .mobile-menu-items a { padding:17px; background:#f8f3e8; }
.mobile-nav-layout-links .mobile-menu-items a:first-child { background:var(--green); color:white; }
.mobile-nav-layout-links .mobile-menu-items a:last-child { background:#edf3f4; }
.mobile-nav-layout-links .mobile-menu-items a:first-child small { color:#d3e2dc; }
.mobile-nav-layout-links .mobile-menu-items a:first-child .mobile-child-icon { color:#f1dfb1; background:#ffffff12; }
.mobile-nav-layout-help .mobile-menu-section { padding:0; background:none; }
.mobile-nav-layout-help .mobile-menu-items { display:grid; gap:8px; }
.mobile-nav-layout-help .mobile-menu-items a { align-items:flex-start; padding:17px; background:#f0f5ed; font-size:16px; }
.mobile-nav-layout-help .mobile-menu-items a:nth-child(2) { background:#f8f3e8; }
.mobile-nav-layout-help .mobile-menu-items a:nth-child(3) { background:#e8f1ec; }
.mobile-nav-layout-help .mobile-menu-items a:nth-child(4) { background:#edf3f4; }
.mobile-nav-layout-help .mobile-menu-items a:nth-child(2) .mobile-child-icon { color:#8c7040; }
.mobile-nav-layout-help .mobile-menu-items a:nth-child(4) .mobile-child-icon { color:#547680; }
.mobile-nav-layout-help .mobile-nav-links small { font-size:14px; }
.mobile-guide { margin-top:10px; border-top:1px solid var(--line); }
.mobile-admin { display:flex; align-items:center; justify-content:space-between; padding:20px 4px 0; color:var(--muted); font-size:14px; }
@media(max-width:1250px) { .header-inner { width:calc(100% - 48px); gap:16px; } .desktop-nav { gap:8px; } }
@media(max-width:1100px) { :root { --site-header-height:72px; } .header-actions { margin-left:auto; } .has-js .desktop-nav { display:none; } .has-js .menu-toggle { display:flex; } html:not(.has-js) .desktop-nav { width:100%; order:3; justify-content:center; flex-wrap:wrap; } html:not(.has-js) .header-inner { flex-wrap:wrap; height:auto; padding-block:12px; } html:not(.has-js) .nav-primary { height:46px; } .nav-item[data-nav-item="about"],.nav-item[data-nav-item="help"] { position:static; } .nav-panel { width:calc(100vw - 32px); } }
@media(max-width:1100px) and (min-width:681px) {
  html:not(.has-js) .nav-panel-chapters .nav-panel-body { grid-template-columns:200px minmax(0,1fr); gap:16px; padding:18px; }
  html:not(.has-js) .nav-panel-chapters .nav-group-items { grid-template-columns:repeat(2,minmax(0,1fr)); }
  html:not(.has-js) .nav-panel-products .nav-groups { grid-template-columns:1fr; }
}
@media(max-width:680px) {
  :root { --site-header-height:70px; }
  .header-inner { width:calc(100% - 32px); gap:10px; }
  .header-admin { display:none; }
  .nav-panel-chapters .nav-panel-body { grid-template-columns:1fr; gap:16px; padding:16px; }
  .nav-panel-products .nav-panel-body { padding:16px; }
  .nav-panel-products .nav-groups { grid-template-columns:1fr; }
  .nav-panel-chapters .nav-group-items { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .nav-panel-products .nav-group-saas .nav-group-items { grid-template-columns:1fr; }
  .nav-feature { padding:18px; }
  .nav-feature strong,.nav-feature p { display:none; }
  .nav-feature-action { margin-top:10px; }
  .nav-primary { font-size:14px; }
  .desktop-nav { gap:0; }
  .nav-panel-links,.nav-panel-help { width:calc(100vw - 32px); }
  .nav-panel-help .nav-group-items { grid-template-columns:1fr; }
  .mobile-nav { padding-inline:20px; }
}
@media(prefers-reduced-motion:reduce) { .nav-letter,.nav-panel,.nav-child,.nav-disclosure span,.nav-feature { transition:none; } .nav-roll:hover .nav-letter,.nav-roll:focus-visible .nav-letter { transform:none; } .nav-letter { text-shadow:none; } }
@media print { .site-header { display:none!important; } }
