/* Shared AF design tokens. Components keep their own controls and typography. */
@font-face{font-family:'AF Marcellus';src:url('../fonts/marcellus/marcellus_wght.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
body.af-layout,.aflab{
 --af-shell-width:1560px;--af-bg:#030c09;--af-bg2:#06130f;--af-panel:#091c16;--af-panel2:#0c211a;
 --af-gold:#d7b46b;--af-mint:#a4cbbb;--af-green:#a4cbbb;--af-ink:#f3efe4;--af-muted:#b4c4bc;--af-dim:#8ca299;
 --af-line:rgba(164,203,187,.20);--af-line2:rgba(215,180,107,.45);
 --af-serif:'AF Marcellus',Georgia,'Times New Roman',serif;--af-sans:system-ui,-apple-system,'Segoe UI',sans-serif;--af-mono:ui-monospace,Consolas,monospace;
 --gold:var(--af-gold);--gold2:#efd49b;--mint:var(--af-mint);--green:var(--af-green);--ink:var(--af-ink);--muted:var(--af-muted);--dim:var(--af-dim);
 --line:var(--af-line);--line2:var(--af-line2);--panel:var(--af-panel);--panel2:var(--af-panel2);--serif:var(--af-serif);--sans:var(--af-sans);--mono:var(--af-mono)
}

/* AF presentation: common. Consolidated 17 October 2026; see presentation-manifest.json. */
.aflab__footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 10px 13px; border-top: 1px solid var(--line); color: var(--dim); font: 600 8px/1.3 var(--mono); letter-spacing: 0.08em; text-transform: uppercase; }
@media (max-width: 820px) {
.aflab__footer { font-size: 7px; flex-wrap: wrap; }
}
.aflab__footer { padding: 12px 17px; background: rgba(1, 7, 5, 0.92); }
.af-surface-footer { margin: 0px 14px 14px; padding: 12px 14px; border: 1px solid var(--af-line); background: rgb(2, 9, 6); color: var(--af-dim); display: flex; justify-content: space-between; gap: 18px; font: 600 8px/1.3 var(--af-mono); letter-spacing: 0.08em; text-transform: uppercase; }
@media (max-width: 720px) {
.af-surface-footer { margin: 0px 6px 6px; flex-wrap: wrap; }
}
.aflab .aflab__footer { padding: 18px 22px; font: 500 10px/1.6 var(--mono); color: var(--muted); letter-spacing: 0.035em; flex-wrap: wrap; }
.aflab .aflab__footer nav { display: flex; gap: 18px; }
.aflab .aflab__footer a { color: var(--gold); text-decoration: none; min-height: 32px; display: inline-flex; align-items: center; }
.aflab .aflab__footer a:hover { text-decoration: underline; text-underline-offset: 4px; }
body.af-surface-page .af-surface-footer { margin: 0px 24px 24px; padding: 20px 24px; font-size: 10px; color: var(--af-muted); border-radius: 4px; }
body.af-surface-page .af-surface-footer nav { display: flex; gap: 20px; }
body.af-surface-page .af-surface-footer a { text-decoration: none; color: var(--af-gold); }
body.af-surface-page .af-surface-footer a:hover { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 700px) {
.aflab .aflab__footer { padding: 18px 16px; gap: 12px; font-size: 9px; }
}
@media (max-width: 700px) {
.aflab .aflab__footer nav { width: 100%; gap: 22px; }
}
@media (max-width: 700px) {
body.af-surface-page .af-surface-footer { margin: 0px 12px 12px; padding: 18px; flex-wrap: wrap; gap: 14px; }
}
@media (max-width: 700px) {
body.af-surface-page .af-surface-footer nav { width: 100%; gap: 18px; }
}
.af-site-header { --af-nav-ink: #f3efe4; --af-nav-gold: #d7b46b; --af-nav-muted: #b4c4bc; --af-nav-line: rgba(164,203,187,.20); box-sizing: border-box; display: flex; align-items: center; gap: 24px; min-height: 80px; padding: 12px 22px; color: var(--af-nav-ink); background: rgba(6, 19, 15, 0.98); border-bottom: 1px solid var(--af-nav-line); position: sticky; top: 0px; z-index: 100; font-family: system-ui, -apple-system, "Segoe UI", sans-serif; }
.af-site-header * { box-sizing: border-box; }
.admin-bar .af-site-header { top: 32px; }
.af-site-header .af-site-brand { display: flex; align-items: center; gap: 12px; color: var(--af-nav-ink); flex-shrink: 0; text-decoration: none !important; }
.af-site-brand img { width: 38px; height: 38px; object-fit: contain; }
.af-site-brand b { display: block; font: 400 23px / 1.2 'AF Marcellus', Georgia, serif; letter-spacing: 0.045em; }
.af-site-brand small { display: block; font: 500 8px / 1.4 ui-monospace, Consolas, monospace; letter-spacing: 0.1em; color: var(--af-nav-muted); margin-top: 4px; text-transform: uppercase; }
.af-site-links { display: flex; justify-content: center; align-items: center; gap: 2px; flex: 1 1 0%; min-width: 0px; }
.af-site-header .af-site-links a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 9px; color: var(--af-nav-muted); border: 1px solid transparent; border-radius: 4px; text-decoration: none; font: 600 11px / 1.4 ui-monospace, Consolas, monospace; white-space: nowrap; }
.af-site-header .af-site-account { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 9px; color: var(--af-nav-muted); border: 1px solid transparent; border-radius: 4px; text-decoration: none; font: 600 11px / 1.4 ui-monospace, Consolas, monospace; white-space: nowrap; }
.af-site-header a[aria-current="page"] { color: var(--af-nav-gold); border-color: rgba(215, 180, 107, 0.45); background: rgba(215, 180, 107, 0.06); }
.af-site-header a:hover { color: var(--af-nav-gold); }
.af-site-actions { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.af-site-header .af-site-account { border-color: rgba(215, 180, 107, 0.45); color: var(--af-nav-gold); padding-inline: 14px; }
.af-site-header .af-site-search { width: 44px; height: 44px; min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; cursor: pointer; padding: 0px !important; background: transparent !important; border: 1px solid var(--af-nav-line) !important; border-radius: 4px !important; color: var(--af-nav-gold) !important; box-shadow: none !important; font: 500 21px / 1 system-ui !important; transform: none !important; }
.af-site-header[data-af-navigation] button.af-site-toggle { width: 44px; height: 44px; min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; cursor: pointer; padding: 0px !important; background: transparent !important; border: 1px solid var(--af-nav-line) !important; border-radius: 4px !important; color: var(--af-nav-gold) !important; box-shadow: none !important; font: 500 21px / 1 system-ui !important; transform: none !important; }
.af-site-header[data-af-navigation] button[data-af-menu-close] { width: 44px; height: 44px; min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; cursor: pointer; padding: 0px !important; background: transparent !important; border: 1px solid var(--af-nav-line) !important; border-radius: 4px !important; color: var(--af-nav-gold) !important; box-shadow: none !important; font: 500 21px / 1 system-ui !important; transform: none !important; }
.af-site-search svg { width: 21px; height: 21px; fill: none; stroke: currentcolor; stroke-width: 1.6; }
.af-site-header[data-af-navigation] button.af-site-toggle { display: none; }
.af-site-header :is(a, button):focus-visible { outline-offset: 3px; outline: 2px solid var(--af-nav-gold) !important; }
.af-site-menu[hidden] { display: none !important; }
.af-site-menu { position: fixed; top: 88px; right: 20px; bottom: 20px; width: min(420px, -40px + 100vw); max-height: calc(-108px + 100svh); overflow-y: auto; overscroll-behavior: contain; padding: 18px; border: 1px solid var(--af-nav-line); border-radius: 5px; background: rgb(6, 19, 15); box-shadow: rgba(0, 0, 0, 0.75) 0px 20px 90px; }
.af-site-menu-heading { display: flex; align-items: center; justify-content: space-between; padding-bottom: 14px; border-bottom: 1px solid var(--af-nav-line); }
.af-site-menu-heading > span { font: 600 11px / 1.5 ui-monospace, Consolas, monospace; color: var(--af-nav-gold); letter-spacing: 0.08em; text-transform: uppercase; }
.af-site-menu nav { display: grid; padding-top: 8px; }
.af-site-header .af-site-menu nav a { display: flex; align-items: center; min-height: 48px; padding: 12px; color: var(--af-nav-ink); border-width: 1px; border-style: solid; border-top-color: transparent; border-right-color: transparent; border-left-color: transparent; border-image: none; border-bottom-color: var(--af-nav-line); text-decoration: none; font: 500 15px / 1.5 system-ui; border-radius: 3px; }
.af-site-header .af-site-menu nav a[aria-current="page"] { color: var(--af-nav-gold); border-color: rgba(215, 180, 107, 0.45); background: rgba(215, 180, 107, 0.06); }
.af-site-context { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; max-width: 1480px; margin: 20px auto 0px; padding: 0px 28px; font: 500 12px / 1.6 system-ui; color: rgb(180, 196, 188); }
.af-site-context a { text-decoration: none; min-height: 32px; display: inline-flex; align-items: center; color: rgb(215, 180, 107) !important; }
.af-site-context a:hover { text-decoration: underline; }
@media (max-width: 1320px) {
.af-site-links { display: none; }
}
@media (max-width: 1320px) {
.af-site-header[data-af-navigation] button.af-site-toggle { display: inline-flex; }
}
@media (max-width: 782px) {
.admin-bar .af-site-header { top: 46px; }
}
@media (max-width: 782px) {
.admin-bar .af-site-menu { top: 134px; max-height: calc(-154px + 100svh); }
}
@media (max-width: 700px) {
.af-site-header { min-height: 72px; padding: 12px 14px; gap: 10px; }
}
@media (max-width: 700px) {
.af-site-brand img { width: 32px; height: 32px; }
}
@media (max-width: 700px) {
.af-site-brand b { font-size: 20px; }
}
@media (max-width: 700px) {
.af-site-brand small { font-size: 6px; letter-spacing: 0.08em; }
}
@media (max-width: 700px) {
.af-site-header .af-site-account { display: none; }
}
@media (max-width: 700px) {
.af-site-actions { gap: 6px; }
}
@media (max-width: 700px) {
.af-site-menu { top: 80px; right: 12px; bottom: 12px; width: calc(-24px + 100vw); max-height: calc(-92px + 100svh); }
}
@media (max-width: 700px) {
.admin-bar .af-site-menu { top: 126px; max-height: calc(-138px + 100svh); }
}
@media (max-width: 700px) {
.af-site-context { padding: 0px 20px; margin-top: 16px; font-size: 12px; }
}
@media (max-width: 359px) {
.af-site-header { padding-inline: 10px; gap: 6px; }
}
@media (max-width: 359px) {
.af-site-brand { gap: 7px !important; }
}
@media (max-width: 359px) {
.af-site-brand b { font-size: 18px; }
}
@media (max-width: 359px) {
.af-site-brand small { font-size: 5.5px; }
}
@media (max-width: 359px) {
.af-site-brand img { width: 28px; height: 28px; }
}
body.single-product.af-surface-page .woocommerce-product-gallery__wrapper { width: 100% !important; transform: none !important; }
body.single-product.af-surface-page .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image { width: 100% !important; float: none !important; display: none !important; }
body.single-product.af-surface-page .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image.flex-active-slide { display: block !important; }
body.single-product.af-surface-page .woocommerce-product-gallery__wrapper:not(:has(.flex-active-slide)) > .woocommerce-product-gallery__image:first-child { display: block !important; }
.af-search-dialog { margin: auto !important; inset: 0px !important; }
body.single-product.af-surface-page .woocommerce-product-gallery { min-height: 0px !important; display: block !important; background: rgb(11, 32, 24) !important; }
body.single-product.af-surface-page .woocommerce-product-gallery__image { background: rgb(11, 32, 24); }
body.single-product.af-surface-page .woocommerce-product-gallery__image img { width: 100% !important; height: 450px !important; object-fit: contain !important; object-position: center center !important; }
body.single-product.af-surface-page .related.products li img { aspect-ratio: 4 / 3; object-fit: contain; opacity: 1 !important; background: rgb(11, 32, 24) !important; }
body.single-product.af-surface-page .af-xlink-path { margin-top: 28px; }
.af-site-header .af-site-links a { font-size: 12px; }
.af-site-brand small { font-size: 8px; }
.af-search-dialog { box-sizing: border-box; width: min(700px, -32px + 100vw); max-height: calc(-40px + 100svh); overflow: auto; border: 1px solid rgb(138, 120, 79); border-radius: 10px; background: rgb(10, 32, 24); color: rgb(243, 234, 215); padding: 26px; font: 400 16px / 1.6 system-ui; box-shadow: rgba(0, 0, 0, 0.6) 0px 24px 100px; }
.af-search-dialog::backdrop { background: rgba(2, 11, 8, 0.79); backdrop-filter: blur(4px); }
.af-search-dialog header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.af-search-dialog h2 { font: 400 32px / 1.2 'AF Marcellus', Georgia, serif !important; margin: 0px 0px 18px !important; color: rgb(245, 232, 207) !important; }
.af-search-dialog [data-af-search-close] { flex: 0 0 auto; align-self: flex-start; width: 44px; min-height: 44px; border-radius: 5px; cursor: pointer; background: transparent !important; color: rgb(225, 191, 128) !important; border: 1px solid rgb(118, 99, 62) !important; }
.af-search-dialog label { display: block; margin: 0px 0px 8px; color: rgb(219, 223, 209); }
.af-search-field { display: flex; gap: 8px; }
.af-search-dialog input { box-sizing: border-box; min-width: 0px; width: 100%; border-radius: 5px; background: rgb(5, 19, 14) !important; color: rgb(248, 239, 223) !important; border: 1px solid rgb(126, 121, 93) !important; padding: 12px !important; font: 400 16px / 1.5 system-ui !important; }
.af-search-field button { min-height: 48px; border-radius: 5px; padding: 12px 18px; cursor: pointer; background: rgb(215, 180, 107) !important; color: rgb(16, 32, 23) !important; border: 0px !important; }
.af-search-dialog :is(input, button, a):focus-visible { outline-offset: 3px; outline: rgb(240, 202, 125) solid 2px !important; }
.af-search-dialog ul { list-style: none; margin: 12px 0px 0px; padding: 0px; }
.af-search-dialog li { border-bottom: 1px solid rgb(52, 75, 62); margin: 0px !important; padding: 0px !important; }
.af-search-dialog li a { display: block; padding: 14px 4px; text-decoration: none; line-height: 1.5; color: rgb(245, 232, 207) !important; }
.af-search-dialog li small { display: block; font: 500 12px / 1.5 system-ui; color: rgb(170, 191, 176); }
.af-search-status { font: 400 14px / 1.6 system-ui; margin: 16px 0px 0px; color: rgb(182, 202, 187) !important; }
@media (max-width: 700px) {
body.single-product.af-surface-page .woocommerce-product-gallery__image img { height: 300px !important; }
}
@media (max-width: 700px) {
.af-search-dialog { padding: 20px; width: calc(-24px + 100vw); }
}
@media (max-width: 700px) {
.af-search-dialog h2 { font-size: 27px !important; }
}
@media (prefers-reduced-motion: reduce) {
.af-surface-page a { scroll-behavior: auto !important; transition: none !important; }
}

/* One frame for AF System, course, products, access and legal pages. */
body:is(.af-surface-page,.page-id-189).af-layout{box-sizing:border-box;margin:0!important;padding:18px!important;background:radial-gradient(ellipse at 15% 0,#0d2c21,transparent 48%),#030c09!important;color:var(--af-ink);font:400 16px/1.65 var(--af-sans)}
/* Opaque sticky header meets the viewport edge, hiding content as it scrolls away. */
body.af-layout .af-site-header{max-width:var(--af-shell-width);width:100%;margin:0 auto;top:0;background:#06130f;border:1px solid var(--af-line);border-bottom:1px solid var(--af-line);border-radius:0}
body.af-layout .af-site-header .af-site-brand b{font-family:var(--af-serif)}
body.af-layout .af-site-header .af-site-links a{font-size:12px}
body.page-id-189.af-layout .aflab{padding:0;background:transparent;overflow:clip}
body.page-id-189.af-layout .aflab__shell{max-width:var(--af-shell-width);margin:0 auto;border:0;background:#06130f;overflow:visible}
body.page-id-189.af-layout .aflab__workspace{border-inline:1px solid var(--af-line)}
body.af-layout .af-site-context{box-sizing:border-box;max-width:var(--af-shell-width);margin:0 auto;padding:16px 18px;border-inline:1px solid var(--af-line);background:#06130f}
body.af-surface-page.af-layout .wp-site-blocks{box-sizing:border-box;max-width:var(--af-shell-width);width:100%;margin:0 auto!important;padding:18px!important;border-inline:1px solid var(--af-line);background:#06130f!important;min-height:calc(100svh - 280px)}
body.af-surface-page.af-layout .wp-site-blocks>main#wp--skip-link--target,
body.af-surface-page.af-layout .wp-site-blocks>.tutor-wrap{max-width:none!important;width:100%!important;margin:0!important;padding:0!important;border:0!important;border-radius:0;box-shadow:none!important;background:transparent!important}
body.af-surface-page.af-layout .tutor-course-details-page{width:100%!important;max-width:none!important;padding:0!important;margin:0!important}
body.af-surface-page.af-layout .tutor-course-details-page main{max-width:none!important}
body.af-layout .af-surface-footer,body.af-layout .aflab__footer{box-sizing:border-box;max-width:var(--af-shell-width);margin:0 auto;padding:20px 22px;border:1px solid var(--af-line);border-radius:0 0 6px 6px;background:#06130f;color:var(--af-muted);font:500 11px/1.6 var(--af-mono);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px}
body.af-layout .af-surface-footer nav,body.af-layout .aflab__footer nav{display:flex;flex-wrap:wrap;gap:12px 20px}
body.af-layout .af-surface-footer a,body.af-layout .aflab__footer a{color:var(--af-gold);text-decoration:none}
body.af-layout .af-privacy-links{box-sizing:border-box;max-width:var(--af-shell-width);margin:0 auto;background:transparent;border:0}
body.af-legal-page.af-layout .af-legal-shell{box-sizing:border-box;max-width:var(--af-shell-width);width:100%;margin:0 auto;padding:24px 18px;border-inline:1px solid var(--af-line);background:#06130f}
body.af-legal-page.af-layout .af-legal-document{max-width:1000px;margin:0 auto}
body.af-layout .af-consent-banner h2,body.af-layout .af-consent-dialog h2{font-family:var(--af-serif)!important}
body.af-layout .af-site-header .af-site-menu{z-index:101}
body.af-layout .af-site-menu{top:106px;max-height:calc(100svh - 124px)}
body.admin-bar.af-layout .af-site-menu{top:138px;max-height:calc(100svh - 156px)}
body.af-privacy-preview.af-layout .af-search-dialog{bottom:calc(var(--af-preview-bar-height,52px) + 16px)!important;max-height:calc(100svh - var(--af-preview-bar-height,52px) - 32px)}
body.af-privacy-preview.af-layout .af-site-menu{bottom:calc(var(--af-preview-bar-height,52px) + 12px);max-height:calc(100svh - var(--af-preview-bar-height,52px) - 124px)}
body.admin-bar.af-layout .af-site-header{top:32px}
@media(max-width:782px){body.admin-bar.af-layout .af-site-header{top:46px}}
@media(max-width:700px){
 body:is(.af-surface-page,.page-id-189).af-layout{padding:0!important}
 body.af-layout .af-site-header{top:0;border-width:0 0 1px;border-radius:0}
 body.af-layout .af-site-menu{top:80px;max-height:calc(100svh - 92px)}
 body.admin-bar.af-layout .af-site-menu{top:126px;max-height:calc(100svh - 138px)}
 body.page-id-189.af-layout .aflab__workspace{border:0}
 body.af-surface-page.af-layout .wp-site-blocks{padding:12px!important;border:0}
 body.af-layout .af-site-context{padding:14px 18px;border:0}
 body.af-layout .af-surface-footer,body.af-layout .aflab__footer{padding:20px 18px;border-width:1px 0;border-radius:0;font-size:11px}
 body.af-legal-page.af-layout .af-legal-shell{padding:16px 12px;border:0}
 body.admin-bar.af-layout .af-site-header{top:46px}
}

