/* AEC Pilot on Odoo: the few touches the Odoo theme does not cover.
   Everything here targets Odoo snippet markup, so the website builder keeps
   working on every block. Brand: navy #021E45, ink #111827, line #E5E7EB. */

:root { --aec-navy: #021e45; --aec-line: #e5e7eb; --aec-ink-2: #374151; --aec-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }

/* type */
#wrap h1, #wrap h2 { letter-spacing: -.025em; font-weight: 700; }
#wrap h3 { letter-spacing: -.015em; font-weight: 650; }
#wrap .display-5 { font-weight: 800; letter-spacing: -.035em; line-height: 1.04; }
#wrap .display-6 { font-weight: 800; letter-spacing: -.03em; }
.aec-eyebrow { font-family: var(--aec-mono); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; opacity: .7; margin-bottom: .9rem; }
#wrap section.o_cc4 .lead, #wrap section.o_cc4 p { color: rgba(255, 255, 255, .72); }
#wrap section.o_cc4 h1, #wrap section.o_cc4 h2, #wrap section.o_cc4 h3, #wrap section.o_cc4 .display-5 { color: #fff; }
#wrap code { font-family: var(--aec-mono); font-size: .86em; color: var(--aec-navy); background: #eef2f8; padding: .1em .35em; border-radius: 4px; }

/* cards */
#wrap .card { border: 1px solid var(--aec-line); border-radius: 12px; box-shadow: 0 2px 10px rgba(2, 30, 69, .05); transition: transform .2s, box-shadow .2s, border-color .2s; overflow: hidden; }
#wrap .card:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(2, 30, 69, .12); border-color: rgba(2, 30, 69, .25); }
#wrap .card, #wrap .card p { color: var(--aec-ink-2); }
#wrap .card h3, #wrap .card .card-title { color: #111827; }
#wrap .o_card_img_wrapper { border-bottom: 1px solid var(--aec-line); background: #f7f8fa; }
#wrap .card-body > p:last-of-type { margin-bottom: 0; }
#wrap .card blockquote { font-size: 15px; line-height: 1.6; margin: .5rem 0 1rem; }

/* dark panels inside cards (pricing header) */
#wrap .aec-darkbox { padding: 2rem; text-align: center; border-radius: 12px; }
#wrap .card .aec-darkbox { margin: -1rem -1rem 1rem; border-radius: 0; }
#wrap .o_cc4 h1, #wrap .o_cc4 h2, #wrap .o_cc4 h3, #wrap .o_cc4 h4 { color: #fff; }
#wrap .o_cc4 .card h1, #wrap .o_cc4 .card h2, #wrap .o_cc4 .card h3 { color: #111827; }
#wrap .o_cc4 .card.aec-glass h3 { color: #fff; }
#wrap .aec-darkbox p { color: rgba(255, 255, 255, .72); margin-bottom: .25rem; }
#wrap .aec-darkbox .display-6 { color: #fff; }

/* terminal and tool-name chips (Pilot AI section) */
#wrap .aec-terminal { background: #0a1830; color: #cfe0ff; border: 1px solid rgba(255, 255, 255, .1); border-radius: 16px; padding: 1.25rem 1.5rem; font-family: var(--aec-mono); font-size: 13px; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, .5); margin: 2rem 0; }
#wrap .aec-terminal p { margin: 0 0 .55rem; color: #cfe0ff; }
#wrap .aec-terminal p:first-child { color: rgba(255, 255, 255, .5); border-bottom: 1px solid rgba(255, 255, 255, .08); padding-bottom: .6rem; margin-bottom: .9rem; }
#wrap .aec-terminal code { background: none; color: #7dd3fc; padding: 0; }
#wrap .aec-chips { line-height: 2.4; }
#wrap .aec-chips code { display: inline-block; margin: 0 .3rem .1rem 0; padding: .2rem .65rem; border-radius: 999px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); color: #cfe0ff; font-size: 12px; line-height: 1.6; }

/* videos: thumbnail with a play mark, opens YouTube */
#wrap .aec-video { position: relative; display: block; border-radius: 16px; overflow: hidden; border: 1px solid var(--aec-line); background: var(--aec-navy); box-shadow: 0 20px 25px -5px rgba(2, 30, 69, .15); }
#wrap .aec-video img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; opacity: .82; transition: opacity .2s; display: block; }
#wrap .aec-video.aec-short img { aspect-ratio: 9 / 16; }
#wrap .aec-video:hover img { opacity: .95; }
#wrap .aec-video::after { content: ""; position: absolute; left: 50%; top: 50%; width: 72px; height: 72px; margin: -36px 0 0 -36px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .35); backdrop-filter: blur(6px); background: rgba(255, 255, 255, .16) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E") 55% 50% / 30px no-repeat; }
#wrap .aec-video.aec-short::after { width: 52px; height: 52px; margin: -26px 0 0 -26px; background-size: 22px; }

/* documentation and tool pages: side navigation */
#wrap .aec-sidenav { position: sticky; top: 6rem; align-self: flex-start; max-height: calc(100vh - 7rem); overflow: auto; }
#wrap .aec-sidenav ul { list-style: none; padding-left: 0; margin-bottom: 1.25rem; }
#wrap .aec-sidenav li { margin: .15rem 0; }
#wrap .aec-sidenav a { color: var(--aec-ink-2); text-decoration: none; display: block; padding: .2rem .5rem; border-radius: 6px; }
#wrap .aec-sidenav a:hover { background: #f1f4f9; color: var(--aec-navy); }
#wrap .aec-sidenav .aec-label { font-size: .7rem !important; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #6b7280; margin: 1rem 0 .25rem .5rem; }
#wrap .aec-sidenav .card p { font-size: .8rem; color: #6b7280; }
#wrap .aec-article h2 { margin-top: 2.5rem; }
#wrap .aec-article h1 + p { font-size: 1.1rem; }
#wrap .aec-article img { border: 1px solid var(--aec-line); border-radius: 12px; }
#wrap .aec-article table { font-size: .9rem; }

/* lists get the check marks the site uses */
#wrap .card ul { padding-left: 1.2rem; }
#wrap .card ul li::marker { color: #16a34a; }

/* header: logo size to match the plate */
header#top .navbar-brand img { max-height: 34px; }

/* until the old stylesheet is gone: it sets body font from a variable that is not defined here */
body:not(:has(.aec-root)) { font-family: "Inter", "Odoo Unicode Support Noto", sans-serif; }

/* hero: two full-bleed panels, like the site's split header */
#wrap .aec-split > .aec-panel { padding: 5rem max(1.5rem, calc((100vw - 1180px) / 2 + 1.25rem)) 5rem 3rem; min-height: 640px; display: flex; flex-direction: column; justify-content: center; }
#wrap .aec-split > .aec-panel:first-child { padding-left: max(1.5rem, calc((100vw - 1180px) / 2 + 1.25rem)); padding-right: 3.5rem; }
#wrap .aec-split > .aec-panel:last-child { padding-left: 3.5rem; }
#wrap .aec-split .aec-panel .row .card .card-body { padding: .75rem 1rem; }
#wrap h1.aec-eyebrow, #wrap h2.aec-eyebrow { font-size: .72rem; font-weight: 500; letter-spacing: .12em; color: inherit; }
#wrap .aec-stats { font-family: var(--aec-mono); font-size: .85rem; color: #111827; margin-top: .5rem; }
#wrap .aec-stats span { white-space: nowrap; }

/* glass cards on navy (Pilot AI section) */
#wrap .card.aec-glass { background: rgba(255, 255, 255, .04); border-color: rgba(255, 255, 255, .1); box-shadow: none; }
#wrap .card.aec-glass:hover { background: rgba(255, 255, 255, .07); border-color: rgba(255, 255, 255, .25); }
#wrap .card.aec-glass, #wrap .card.aec-glass p, #wrap .card.aec-glass li { color: rgba(255, 255, 255, .78); }
#wrap .card.aec-glass h3 { color: #fff; }
#wrap .card.aec-glass ul li::marker { color: rgba(255, 255, 255, .6); }
#wrap .card.aec-glass .card-body { padding: 1.75rem; }
#wrap .card.aec-glass .card-body { background: transparent; }

/* footer (Odoo footer template, navy) */
footer#bottom .aec-foot-head { font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #fff; margin-bottom: .9rem; }
footer#bottom .aec-foot-links li { margin: .45rem 0; }
footer#bottom .aec-foot-links a, footer#bottom .aec-foot-legal a { color: rgba(255, 255, 255, .7); text-decoration: none; font-size: .9rem; }
footer#bottom .aec-foot-links a:hover, footer#bottom .aec-foot-legal a:hover { color: #fff; }
footer#bottom .aec-foot-desc { color: rgba(255, 255, 255, .55); max-width: 18rem; }
footer#bottom .aec-social { display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; border: 1px solid rgba(255, 255, 255, .1); background: rgba(255, 255, 255, .05); border-radius: 8px; color: rgba(255, 255, 255, .75); }
footer#bottom .aec-social:hover { color: #fff; border-color: rgba(255, 255, 255, .25); }
footer#bottom .aec-foot-bottom { border-top: 1px solid rgba(255, 255, 255, .1); padding-top: 1.5rem; margin-top: 1rem; color: rgba(255, 255, 255, .5); }
footer#bottom .aec-foot-legal a { margin-right: 1.1rem; }
footer#bottom .aec-foot-legal span { color: rgba(255, 255, 255, .4); }

/* ---------- Odoo brand line in the copyright bar ---------- */
.o_brand_promotion { display: none !important; }

/* ---------- motion layer (odoo_fx.js) ---------- */
.aec-progress { position: fixed; inset: 0 0 auto 0; height: 3px; z-index: 1100; pointer-events: none; }
.aec-progress span { display: block; height: 100%; transform-origin: 0 50%; transform: scaleX(0); background: linear-gradient(90deg, #021e45, #3b6fb5 55%, #5b9bf0); }

.aec-reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s cubic-bezier(.22, 1, .36, 1), transform .6s cubic-bezier(.22, 1, .36, 1); }
.aec-reveal.aec-in { opacity: 1; transform: none; }

#wrap .aec-tilt { transition: transform .2s ease-out, box-shadow .2s, border-color .2s; will-change: transform; }
.aec-magnetic { transition: transform .25s cubic-bezier(.22, 1, .36, 1), background-color .2s, box-shadow .2s !important; }

/* pre-highlight cursor: the native cursor stays, this is an accent on top */
.aec-cursor-dot { position: fixed; top: 0; left: 0; width: 9px; height: 9px; border-radius: 50%; background: #fff; pointer-events: none; z-index: 9999; opacity: 0; mix-blend-mode: difference; transition: opacity .2s, width .2s, height .2s; }
.aec-cursor-dot.on { opacity: 1; }
.aec-cursor-dot.small { width: 5px; height: 5px; }
.aec-cursor-dot.down { width: 14px; height: 14px; }
.aec-select-box { position: fixed; top: 0; left: 0; pointer-events: none; z-index: 9998; opacity: 0; mix-blend-mode: difference; transition: transform .19s cubic-bezier(.22, 1, .36, 1), width .19s cubic-bezier(.22, 1, .36, 1), height .19s cubic-bezier(.22, 1, .36, 1), opacity .2s; }
.aec-select-box.on { opacity: 1; }
.aec-select-box span { position: absolute; width: 11px; height: 11px; border: 1.5px solid #fff; }
.aec-select-box span:nth-child(1) { top: -3px; left: -3px; border-right: 0; border-bottom: 0; }
.aec-select-box span:nth-child(2) { top: -3px; right: -3px; border-left: 0; border-bottom: 0; }
.aec-select-box span:nth-child(3) { bottom: -3px; right: -3px; border-left: 0; border-top: 0; }
.aec-select-box span:nth-child(4) { bottom: -3px; left: -3px; border-right: 0; border-top: 0; }

/* pricing card: a slow gradient border on hover, like the site's grad-border */
@property --aec-angle { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
#wrap .card:has(> .card-body > .aec-darkbox) { position: relative; }
#wrap .card:has(> .card-body > .aec-darkbox)::before { content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1.5px; background: conic-gradient(from var(--aec-angle), #021e45, #3b6fb5, #5b9bf0, #3b6fb5, #021e45); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity: 0; transition: opacity .3s; pointer-events: none; }
#wrap .card:has(> .card-body > .aec-darkbox):hover::before { opacity: 1; animation: aec-spin 3s linear infinite; }
@keyframes aec-spin { to { --aec-angle: 360deg; } }

/* tool-name chips scroll like the site's marquee */
#wrap .aec-chips { mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }

/* hero headline gets the site's gradient accent on hover-capable screens */
#wrap .aec-split .display-5 { background: linear-gradient(120deg, #fff 0%, #cfe0ff 55%, #fff 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }

@media (prefers-reduced-motion: reduce) { .aec-reveal { opacity: 1; transform: none; transition: none; } }

/* ---------- depth on navy panels, like the original hero ---------- */
#wrap .aec-split > .aec-panel.o_cc4 {
  background-color: #021e45;
  background-image:
    radial-gradient(120% 90% at 0% 0%, rgba(59, 111, 181, .38), transparent 55%),
    linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px);
  background-size: auto, 44px 44px, 44px 44px;
}
#wrap section.o_cc4 {
  background-image: radial-gradient(70% 90% at 50% -25%, rgba(91, 155, 240, .26), transparent 62%);
}
/* light panel of the hero: soft dotted texture */
#wrap .aec-split > .aec-panel.o_cc2 {
  background-image: radial-gradient(rgba(2, 30, 69, .07) 1px, transparent 1px);
  background-size: 18px 18px;
}
/* buttons: a little lift and glow on hover */
#wrap .btn-primary:hover, #wrap .btn-light:hover { box-shadow: 0 10px 24px -8px rgba(2, 30, 69, .45); }
#wrap .btn-outline-light:hover { background: rgba(255, 255, 255, .1); color: #fff; }
/* accordion: brand focus ring instead of Bootstrap blue */
#wrap .accordion-button:not(.collapsed) { background: #f1f4f9; color: #021e45; box-shadow: none; }
#wrap .accordion-button:focus { box-shadow: 0 0 0 .2rem rgba(59, 111, 181, .2); }

/* ---------- icons (lucide, inline) ---------- */
#wrap .aec-ico { display: inline-block; vertical-align: -0.15em; flex-shrink: 0; }
#wrap .btn .aec-ico { margin-left: .35rem; vertical-align: -0.2em; }
#wrap .btn .aec-ico-circle-play, #wrap .btn .aec-ico-arrow-left { margin: 0 .4rem 0 0; }
#wrap li > .aec-ico-check:first-child, #wrap li > .aec-icon-box:first-child { margin-right: .5rem; }
#wrap .aec-icon-box { display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; background: #e6ebf3; color: #021e45; flex-shrink: 0; vertical-align: middle; }
#wrap .aec-icon-box-lg { width: 3rem; height: 3rem; border-radius: 12px; }
#wrap .aec-icon-box-md { width: 2.25rem; height: 2.25rem; }
#wrap .aec-icon-box-sm { width: 1.35rem; height: 1.35rem; border-radius: 50%; background: rgba(22, 163, 74, .1); color: #16a34a; }
#wrap .aec-icon-box-lg .aec-ico { width: 22px; height: 22px; }
#wrap .aec-icon-box-md .aec-ico { width: 18px; height: 18px; }
#wrap .aec-icon-box-sm .aec-ico { width: 12px; height: 12px; }
#wrap .o_cc4 .aec-icon-box, #wrap .aec-glass .aec-icon-box { background: rgba(255, 255, 255, .1); color: #fff; }
#wrap .aec-glass .aec-icon-box-sm { background: rgba(255, 255, 255, .15); color: #fff; }
#wrap .aec-stars { color: #e8a000; display: inline-flex; gap: 2px; vertical-align: -0.15em; margin-right: .4rem; }
#wrap .aec-stars .aec-ico { width: 15px; height: 15px; fill: currentColor; }
#wrap .aec-card-arrow { float: right; width: 16px; height: 16px; color: #9ca3af; transition: transform .2s, color .2s; }
#wrap .card:hover .aec-card-arrow { transform: translate(2px, -2px); color: #021e45; }
#wrap .aec-ico-check { color: #16a34a; }
#wrap .o_cc4 .aec-ico-check { color: #7dd3a3; }
#wrap .aec-video .aec-ico { display: none; }
#wrap ul:has(> li > .aec-icon-box:first-child), #wrap ul:has(> li > .aec-ico-check:first-child) { list-style: none; padding-left: 0; }
#wrap ul:has(> li > .aec-icon-box:first-child) li { display: flex; align-items: flex-start; gap: .1rem; margin-bottom: .45rem; }
#wrap ul:has(> li > .aec-icon-box:first-child) li > .aec-icon-box { margin-top: .12rem; }
#wrap .aec-label { font-size: .72rem !important; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #6b7280; margin: 2rem 0 .8rem; }
#wrap .o_cc4 .aec-label { color: rgba(255, 255, 255, .6); }
#wrap .aec-iconrow { display: flex; gap: .9rem; align-items: center; margin: 1.5rem 0 1rem; }
#wrap .aec-iconrow-body > :last-child { margin-bottom: 0; }
#wrap .aec-iconrow-body > * { margin-bottom: .1rem; }
#wrap .aec-iconrow .aec-icon-box-sm { width: 2.25rem; height: 2.25rem; border-radius: 10px; background: #e6ebf3; color: #021e45; }
#wrap .aec-iconrow .aec-icon-box-sm .aec-ico { width: 18px; height: 18px; }
#wrap section[data-snippet] .aec-iconrow + .row { border-top: 1px solid #e5e7eb; padding-top: 1.25rem; }
#wrap .aec-chip { border-radius: 999px; }
#wrap > section.o_cc4:first-child { background-image: radial-gradient(90% 120% at 0% 0%, rgba(59, 111, 181, .35), transparent 55%), linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px); background-size: auto, 44px 44px, 44px 44px; }
#wrap .aec-sidenav .aec-ico { width: 13px; height: 13px; margin-right: .3rem; opacity: .7; }
#wrap .aec-card-head { display: flex; align-items: center; gap: .6rem; margin-bottom: .5rem !important; }
#wrap .aec-card-head > span:nth-child(2) { flex: 1; }
#wrap .aec-card-head .aec-icon-box-md { width: 1.9rem; height: 1.9rem; border-radius: 8px; }
#wrap .aec-card-head .aec-card-arrow { float: none; }
#wrap .aec-article table thead th, #wrap table thead th { background: #021e45; color: #fff; font-weight: 600; font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; border: 0; }
#wrap table thead th:first-child { border-top-left-radius: 8px; } #wrap table thead th:last-child { border-top-right-radius: 8px; }
#wrap .aec-note { background: #f1f5fb; border-color: #cfdcee; }
#wrap .aec-note .aec-iconrow { align-items: flex-start; margin: 0; }
#wrap .aec-note .aec-icon-box-md { background: #fff; }

/* tool-name strip: one line, drifting like the original marquee */
#wrap .aec-chips.aec-marquee { overflow: hidden; white-space: nowrap; line-height: 1; }
#wrap .aec-marquee-track { display: inline-flex; gap: .4rem; animation: aec-marquee 48s linear infinite; }
#wrap .aec-marquee:hover .aec-marquee-track { animation-play-state: paused; }
#wrap .aec-marquee-track code { margin: 0 !important; }
@keyframes aec-marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { #wrap .aec-marquee-track { animation: none; } }
#wrap .aec-steps { list-style: none; padding-left: 0; counter-reset: aecstep; }
#wrap .aec-steps > li { position: relative; padding-left: 2.6rem; margin-bottom: 1.1rem; counter-increment: aecstep; }
#wrap .aec-steps > li::before { content: counter(aecstep); position: absolute; left: 0; top: .05rem; width: 1.75rem; height: 1.75rem; border-radius: 50%; background: #021e45; color: #fff; font-weight: 700; font-size: .85rem; display: flex; align-items: center; justify-content: center; }
#wrap .aec-steps > li > p:first-child { font-weight: 600; color: #111827; margin-bottom: .15rem; }
#wrap .aec-steps > li > p { margin-bottom: .2rem; }
#wrap .aec-badge { display: inline-block; background: #021e45; color: #fff; font-size: .7rem; font-weight: 700; padding: .2rem .65rem; border-radius: 999px; }
#wrap .card.aec-featured { border: 1.5px solid #021e45; box-shadow: 0 18px 40px -18px rgba(2, 30, 69, .35); }
#wrap .card .aec-label { margin: 0 0 .15rem; font-size: .62rem !important; }

/* ---------- Product mega menu (website.menu 179), like the site's dropdown ---------- */
header#top .o_mega_menu.aec-mega { width: min(38rem, calc(100vw - 2rem)); left: 0; right: auto; margin-top: .6rem; border: 1px solid #e5e7eb; border-radius: 14px; overflow: hidden; box-shadow: 0 25px 50px -12px rgba(2, 30, 69, .28); padding: 0; }
header#top .o_mega_menu.aec-mega .container { max-width: none; padding: .5rem; }
.aec-mm-group { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #6b7280; padding: .5rem .75rem .25rem; margin: 0; }
.aec-mm-item { display: flex; align-items: flex-start; gap: .75rem; padding: .6rem .75rem; border-radius: 10px; text-decoration: none !important; transition: background-color .15s; }
.aec-mm-item:hover { background: #eef2f8; }
.aec-mm-ico { display: flex; width: 2rem; height: 2rem; flex-shrink: 0; align-items: center; justify-content: center; border-radius: 8px; background: #e6ebf3; color: #021e45; margin-top: .1rem; transition: background-color .15s, color .15s; }
.aec-mm-item:hover .aec-mm-ico { background: #021e45; color: #fff; }
.aec-mm-ico .aec-ico { width: 15px; height: 15px; }
.aec-mm-text strong { display: block; font-size: .875rem; font-weight: 600; color: #111827; }
.aec-mm-text small { display: block; font-size: .75rem; line-height: 1.35; color: #6b7280; }
.aec-mm-cta { display: block; margin-top: .5rem; padding: .9rem; border-radius: 10px; color: #fff !important; text-decoration: none !important; background: #021e45 radial-gradient(120% 120% at 100% 0%, rgba(91, 155, 240, .45), transparent 60%); transition: filter .15s; }
.aec-mm-cta:hover { filter: brightness(1.12); }
.aec-mm-cta strong { display: block; font-size: .875rem; }
.aec-mm-cta small { display: block; font-size: .75rem; color: rgba(255, 255, 255, .65); margin-top: .1rem; }
.aec-mm-cta span { display: inline-flex; align-items: center; gap: .25rem; margin-top: .5rem; font-size: .75rem; font-weight: 600; }
.aec-mm-cta .aec-ico { width: 13px; height: 13px; }
@media (max-width: 991.98px) { header .o_mega_menu.aec-mega { width: auto; box-shadow: none; border: 0; } }

/* ---------- toolbox filter chips ---------- */
#wrap .aec-filter .aec-chip { transition: transform .2s, background-color .2s, color .2s, border-color .2s, box-shadow .2s; }
#wrap .aec-filter .aec-chip:hover { transform: translateY(-2px); }
#wrap .aec-filter .aec-chip .aec-ico { margin: 0 .35rem 0 0; vertical-align: -0.15em; }
#wrap .aec-cat { scroll-margin-top: 6rem; }
#wrap .aec-cat.aec-hide { display: none; }
#wrap .aec-cat.aec-pop [class*="col-"] { animation: aec-pop .45s cubic-bezier(.22, 1, .36, 1) both; }
@keyframes aec-pop { from { opacity: 0; transform: translateY(12px); } }

/* ---------- 7dimensions touches: glow, gradient words, eyebrows ---------- */
/* eyebrow = a grid bubble on its grid line (2026-09-27; was a gradient dash and a glowing dot):
   the marks every plan carries, and the same grid the hero is drawn on */
#wrap { --aec-grid: #3b82f6; }
#wrap .o_cc4, #wrap .aec-split .aec-panel.o_cc4 { --aec-grid: #7fb2ff; }
#wrap .aec-eyebrow { display: inline-flex; align-items: center; gap: .55rem; opacity: 1; font-weight: 500; }
#wrap .aec-eyebrow::after { content: ""; order: -2; width: 9px; height: 9px; border-radius: 50%; border: 1.5px solid var(--aec-grid); background: none; box-shadow: none; flex-shrink: 0; }
#wrap .aec-eyebrow::before { content: ""; order: -1; width: 18px; height: 1.5px; border-radius: 0; background: var(--aec-grid); flex-shrink: 0; }
#wrap .o_cc4 .aec-eyebrow { color: #93c5fd; }
/* the hero's eyebrow: a full grid bubble lettered "A", its grid line, then the words */
#wrap .aec-split .aec-panel.o_cc4 .aec-eyebrow { padding: 0; border: 0; border-radius: 0; background: none; backdrop-filter: none; line-height: 1.3; align-self: flex-start; color: rgba(255, 255, 255, .9); }
#wrap .aec-split .aec-panel.o_cc4 .aec-eyebrow::after { content: "A"; width: 1.45rem; height: 1.45rem; display: flex; align-items: center; justify-content: center; font-size: .62rem; font-weight: 600; letter-spacing: 0; color: var(--aec-grid); }
#wrap .aec-split .aec-panel.o_cc4 .aec-eyebrow::before { width: 1.6rem; }
/* accent = the closing words of a big title, dimensioned: an architectural dimension line with 45° ticks
   (2026-09-27; was gradient text). It is drawn in, left to right, when the title comes into view. */
#wrap .aec-split .display-5 { background: none; -webkit-text-fill-color: currentColor; color: #fff; }
#wrap .aec-accent { position: relative; display: inline-block; color: inherit; background: none; -webkit-text-fill-color: currentColor; }
#wrap .aec-accent::after { content: ""; position: absolute; left: -.04em; right: -.04em; bottom: -.14em; height: .3em; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 0V12' stroke='%235b9bf0' stroke-width='1.2'/%3E%3Cpath d='M1.5 10.5L10.5 1.5' stroke='%235b9bf0' stroke-width='1.8'/%3E%3C/svg%3E") left center / .3em .3em no-repeat,
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 0V12' stroke='%235b9bf0' stroke-width='1.2'/%3E%3Cpath d='M1.5 10.5L10.5 1.5' stroke='%235b9bf0' stroke-width='1.8'/%3E%3C/svg%3E") right center / .3em .3em no-repeat,
    linear-gradient(#5b9bf0, #5b9bf0) center / calc(100% - .1em) max(2px, .045em) no-repeat;
  transform-origin: left center; transition: transform .8s cubic-bezier(.22, 1, .36, 1) .25s; }
#wrap .aec-reveal:not(.aec-in) .aec-accent::after { transform: scaleX(0); }
@media (prefers-reduced-motion: reduce) { #wrap .aec-accent::after { transition: none; } }
/* glowing primary action, lifting on hover */
#wrap .aec-split .btn-light, #wrap section.o_cc4 .btn-light, #wrap section.o_cc4 .btn-primary, header#top .btn_cta { border-radius: 999px; box-shadow: 0 4px 24px rgba(59, 130, 246, .35); }
#wrap .aec-split .btn-light:hover, #wrap section.o_cc4 .btn-light:hover, header#top .btn_cta:hover { box-shadow: 0 12px 40px rgba(59, 130, 246, .5); }
#wrap .aec-split .btn-outline-light, #wrap section.o_cc4 .btn-outline-light { border-radius: 999px; backdrop-filter: blur(8px); }
/* drifting light orbs behind navy sections */
#wrap section.o_cc4, #wrap .aec-split > .aec-panel.o_cc4 { position: relative; overflow: hidden; isolation: isolate; }
#wrap section.o_cc4::before, #wrap .aec-split > .aec-panel.o_cc4::before { content: ""; position: absolute; z-index: -1; width: 520px; height: 520px; top: -160px; left: -140px; border-radius: 50%; background: radial-gradient(circle, rgba(37, 99, 235, .28) 0%, transparent 70%); filter: blur(60px); animation: aec-orb 20s ease-in-out infinite; pointer-events: none; }
#wrap section.o_cc4::after { content: ""; position: absolute; z-index: -1; width: 440px; height: 440px; bottom: -120px; right: -100px; border-radius: 50%; background: radial-gradient(circle, rgba(6, 182, 212, .18) 0%, transparent 70%); filter: blur(60px); animation: aec-orb 22s ease-in-out infinite reverse; pointer-events: none; }
@keyframes aec-orb { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(50px, -40px); } }
/* card images zoom gently, icon boxes light up */
#wrap .card .o_card_img_wrapper img, #wrap .card-img-top { transition: transform .7s cubic-bezier(.22, 1, .36, 1); }
#wrap .card:hover .o_card_img_wrapper img, #wrap .card:hover .card-img-top { transform: scale(1.04); }
#wrap .card .aec-icon-box { transition: background .25s, color .25s, box-shadow .25s; }
#wrap .card:hover .aec-icon-box-md, #wrap .card:hover .aec-icon-box-lg, #wrap .aec-iconrow:hover .aec-icon-box { background: linear-gradient(135deg, #021e45, #3b6fb5); color: #fff; box-shadow: 0 6px 18px -6px rgba(59, 111, 181, .6); }
#wrap .aec-glass .aec-icon-box { background: linear-gradient(135deg, #3b82f6, #06b6d4); color: #fff; }
/* steps: gradient numerals */
#wrap .aec-steps > li::before { background: linear-gradient(135deg, #021e45, #3b6fb5); box-shadow: 0 4px 14px -4px rgba(59, 111, 181, .6); }
/* spotlight: glass cards follow the pointer with a soft light (odoo_fx.js sets --mx/--my) */
#wrap .card.aec-glass { background-image: radial-gradient(420px circle at var(--mx, -500px) var(--my, -500px), rgba(91, 155, 240, .16), transparent 45%); }
@media (prefers-reduced-motion: reduce) { #wrap section.o_cc4::before, #wrap section.o_cc4::after, #wrap .aec-split > .aec-panel.o_cc4::before, #wrap .aec-split .aec-panel.o_cc4 .aec-eyebrow::before { animation: none; } }

header#top li:has(> .aec-mega) { position: relative; }
header#top li:has(> .aec-mega) > .aec-mega { left: 0; top: 100%; }

/* ---------- /contact (content of 7dimensions.eu/contact-us, AEC Pilot theme) ---------- */
#wrap .aec-contact-hero .aec-eyebrow { justify-content: center; }
#wrap .aec-contact-hero .lead { color: rgba(255, 255, 255, .72); }
#wrap .card.aec-contact-card { border-radius: 18px; box-shadow: 0 20px 40px -18px rgba(2, 30, 69, .25); }
#wrap .card.aec-contact-card:hover { transform: none; }
#wrap .aec-contact-card .card-body { padding: 2.25rem; }
#wrap .aec-contact-card .form-control { padding: .7rem .9rem; border-radius: 10px; border-color: #d8dee8; background: #f9fafc; transition: border-color .2s, box-shadow .2s, background-color .2s; }
#wrap .aec-contact-card .form-control:focus { background: #fff; border-color: #3b6fb5; box-shadow: 0 0 0 4px rgba(59, 111, 181, .15); }
#wrap .aec-contact-card .s_website_form_label { font-weight: 600; color: #374151; }
#wrap .aec-contact-card .s_website_form_send { border-radius: 10px; padding: .85rem 1.5rem; background: linear-gradient(135deg, #021e45, #3b6fb5); border: 0; box-shadow: 0 8px 22px -10px rgba(2, 30, 69, .6); transition: transform .2s, box-shadow .2s; }
#wrap .aec-contact-card .s_website_form_send:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -10px rgba(59, 111, 181, .6); }
#wrap .aec-contact-card .s_website_form_send .aec-ico { margin: 0 .5rem 0 0; }
#wrap .aec-office { display: flex; gap: 1.25rem; align-items: flex-start; margin-bottom: 2.5rem; }
#wrap .aec-office-ico { display: flex; width: 48px; height: 48px; flex-shrink: 0; align-items: center; justify-content: center; border-radius: 50%; color: #fff; margin-top: .15rem; }
#wrap .aec-office-ico.aec-grad-blue { background: linear-gradient(135deg, #3b82f6, #021e45); box-shadow: 0 6px 16px -4px rgba(59, 130, 246, .5); }
#wrap .aec-office-ico.aec-grad-violet { background: linear-gradient(135deg, #8b5cf6, #3b6fb5); box-shadow: 0 6px 16px -4px rgba(139, 92, 246, .45); }
#wrap .aec-office-body { flex: 1; min-width: 0; }
#wrap .aec-office-body h3 { margin-bottom: .9rem; }
#wrap .aec-office-line { display: flex; gap: .75rem; align-items: flex-start; margin-bottom: .5rem; color: #4b5563; }
#wrap .aec-office-line .aec-ico { color: #94a3b8; margin-top: .2rem; }
#wrap .aec-office-line a { color: #4b5563; text-decoration: none; }
#wrap .aec-office-line a:hover { color: #021e45; }
#wrap .aec-hours { display: flex; gap: .75rem; margin-top: 1rem; padding: .9rem 1rem; border-radius: 12px; background: #f5f7fb; border: 1px solid #e5e7eb; font-size: .9rem; }
#wrap .aec-hours > .aec-ico { color: #3b6fb5; margin-top: .15rem; }
#wrap .aec-hours > div { flex: 1; }
#wrap .aec-hours p { display: flex; justify-content: space-between; gap: 1rem; margin: 0; color: #6b7280; }
#wrap .aec-hours p:first-child { border-bottom: 1px solid #e5e7eb; padding-bottom: .5rem; margin-bottom: .5rem; }
#wrap .aec-hours strong { color: #111827; font-weight: 600; }
#wrap .aec-hours .aec-closed { color: #dc2626; }

/* ---------- shop (standard Odoo eCommerce pages, brand colours only) ---------- */
.aec-shop-tiers { margin: .75rem 0 1rem; padding: .9rem 1rem; border: 1px solid #e5e7eb; border-radius: 12px; background: #f8fafc; max-width: 26rem; }
.aec-shop-tiers p { font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #6b7280; margin: 0 0 .5rem; }
.aec-shop-tiers ul { list-style: none; padding: 0; margin: 0; }
.aec-shop-tiers li { display: flex; justify-content: space-between; gap: 1rem; padding: .3rem 0; font-size: .9rem; color: #374151; }
.aec-shop-tiers li + li { border-top: 1px dashed #e5e7eb; }
.aec-shop-tiers strong { color: #021e45; }
.aec-shop-terms { display: block; margin-top: .75rem; line-height: 1.7; }
#product_detail .o_wsale_product_btn .btn, #product_detail #add_to_cart { border-radius: 999px; }
#product_detail #product_details h1 { letter-spacing: -.02em; font-weight: 700; }

/* ---------- /my/licences (redesign 2026-09-29) ----------
   aecpilot-fx.js drives this page through .aec-licences (messages), .aec-lic (data-key/-user),
   .aec-copy (data-copy; its TEXT becomes "✓" for a moment, so its icon is a ::before),
   .aec-uname, .aec-uchange, .aec-uedit, .aec-uinput, .aec-usave, .aec-ucancel, .aec-ustatus,
   .aec-lic-msg and .aec-release - keep those names. */
#wrap .aec-lic { position: relative; background: #fff; border: 1px solid var(--aec-line); border-radius: 16px; box-shadow: 0 1px 2px rgba(2, 30, 69, .04), 0 14px 34px -20px rgba(2, 30, 69, .30); padding: 1.5rem 1.6rem 1.35rem 1.85rem; overflow: hidden; }
#wrap .aec-lic::before { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 4px; background: #16a34a; }
#wrap .aec-lic[data-state="expired"]::before { background: #e8a000; }
#wrap .aec-lic[data-state="revoked"]::before { background: #dc2626; }
#wrap .aec-lic-top { display: flex; align-items: center; gap: .9rem 1rem; flex-wrap: wrap; }
#wrap .aec-lic-mark { width: 44px; height: 44px; border-radius: 10px; flex: none; display: block; }
#wrap .aec-lic-title { flex: 1 1 12rem; min-width: 0; }
#wrap .aec-lic-name { font-weight: 700; font-size: 1.08rem; line-height: 1.2; color: #111827; letter-spacing: -.01em; }
#wrap .aec-lic-badges { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin-top: .35rem; }
#wrap .aec-pill { display: inline-flex; align-items: center; gap: .38rem; font-size: .72rem; font-weight: 600; letter-spacing: .02em; line-height: 1; padding: .34rem .62rem; border-radius: 999px; }
#wrap .aec-pill-plan { background: #021e45; color: #fff; }
#wrap .aec-pill-plan.is-trial { background: #eef2f8; color: #021e45; }
#wrap .aec-pill-state::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
#wrap .aec-pill-state.is-active { background: #ecfdf3; color: #15803d; }
#wrap .aec-pill-state.is-expired { background: #fff7e6; color: #b45309; }
#wrap .aec-pill-state.is-revoked { background: #fef2f2; color: #b91c1c; }
#wrap .aec-lic-seat { font-family: var(--aec-mono); font-size: .75rem; color: #9ca3af; }
#wrap .aec-lic-until { text-align: right; }
#wrap .aec-lic-date { font-weight: 600; font-size: 1rem; color: #111827; font-variant-numeric: tabular-nums; }
#wrap .aec-lic-label { font-family: var(--aec-mono); font-size: .68rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: #6b7280; margin-bottom: .4rem; }
#wrap .aec-lic-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem 1.25rem; margin-top: 1.35rem; padding-top: 1.25rem; border-top: 1px solid var(--aec-line); }
#wrap .aec-lic-box { display: flex; align-items: center; gap: .5rem; background: #f7f8fa; border: 1px solid var(--aec-line); border-radius: 10px; padding: .4rem .4rem .4rem .85rem; min-height: 2.8rem; }
#wrap .aec-lic-box code { background: none; padding: 0; font-size: .95rem; color: #021e45; letter-spacing: .02em; flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
#wrap .aec-copy { display: inline-flex; align-items: center; gap: .35rem; flex: none; border: 1px solid var(--aec-line); background: #fff; color: #374151; font-size: .78rem; font-weight: 600; line-height: 1; border-radius: 8px; padding: .42rem .65rem; cursor: pointer; transition: border-color .15s, color .15s; }
#wrap .aec-copy::before { content: ""; width: 14px; height: 14px; flex: none; background: currentColor; -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect width='14' height='14' x='8' y='8' rx='2' ry='2'/><path d='M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2'/></svg>") center / contain no-repeat; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect width='14' height='14' x='8' y='8' rx='2' ry='2'/><path d='M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2'/></svg>") center / contain no-repeat; }
#wrap .aec-copy:hover { border-color: #021e45; color: #021e45; }
#wrap .aec-uchange { display: inline-flex; align-items: center; gap: .3rem; margin-top: .5rem; border: 0; background: none; padding: 0; font-size: .82rem; font-weight: 600; color: #2563eb; cursor: pointer; }
#wrap .aec-uchange::before { content: ""; width: 13px; height: 13px; background: currentColor; -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z'/><path d='m15 5 4 4'/></svg>") center / contain no-repeat; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z'/><path d='m15 5 4 4'/></svg>") center / contain no-repeat; }
#wrap .aec-uchange:hover { text-decoration: underline; }
#wrap .aec-uedit { margin-top: .65rem; }
#wrap .aec-uedit-row { display: flex; gap: .4rem; }
#wrap .aec-uedit-row .form-control { border-radius: 8px; font-family: var(--aec-mono); font-size: .9rem; min-width: 0; }
#wrap .aec-uedit-row .btn { border-radius: 8px; font-size: .82rem; padding: .38rem .8rem; white-space: nowrap; }
#wrap .aec-uhint { font-size: .75rem; color: #9ca3af; margin-top: .3rem; }
#wrap .aec-lic-foot { display: flex; align-items: center; justify-content: space-between; gap: .75rem 1rem; flex-wrap: wrap; margin-top: 1.25rem; padding-top: 1.1rem; border-top: 1px solid var(--aec-line); }
#wrap .aec-lic-machine { display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; }
#wrap .aec-lic-machine .aec-lic-label { margin: 0; }
#wrap .aec-lic-mval { display: inline-flex; align-items: center; gap: .45rem; font-weight: 600; color: #111827; }
#wrap .aec-lic-mval::before { content: ""; width: 16px; height: 16px; background: #6b7280; -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect width='20' height='14' x='2' y='3' rx='2'/><line x1='8' x2='16' y1='21' y2='21'/><line x1='12' x2='12' y1='17' y2='21'/></svg>") center / contain no-repeat; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect width='20' height='14' x='2' y='3' rx='2'/><line x1='8' x2='16' y1='21' y2='21'/><line x1='12' x2='12' y1='17' y2='21'/></svg>") center / contain no-repeat; }
#wrap .aec-lic-mval.is-empty { font-weight: 500; color: #6b7280; }
#wrap .aec-release { border: 1px solid #d1d5db; background: #fff; color: #374151; font-size: .8rem; font-weight: 600; line-height: 1; border-radius: 999px; padding: .5rem .95rem; cursor: pointer; transition: border-color .15s, color .15s; }
#wrap .aec-release:hover { border-color: #b91c1c; color: #b91c1c; }
#wrap .aec-release:disabled { opacity: .5; cursor: default; }
#wrap .aec-copy:focus-visible, #wrap .aec-uchange:focus-visible, #wrap .aec-release:focus-visible { outline: 2px solid #3b82f6; outline-offset: 2px; }
#wrap .aec-lic-msg { margin: 1rem 0 0; font-size: .85rem; color: #021e45; background: #eef2f8; border-radius: 8px; padding: .55rem .8rem; }
#wrap .aec-lic-msg:empty { display: none; }
#wrap .aec-lic-actions .btn { border-radius: 999px; padding-left: 1.2rem; padding-right: 1.2rem; }
/* download panel (2026-10-04: new users could not find the download); since 2026-10-05 under the licence
   cards and "Manage subscription", the user's own licences come first */
#wrap .aec-dl { position: relative; display: flex; align-items: center; gap: 1.1rem 1.5rem; flex-wrap: wrap; margin: 1.5rem 0 0; padding: 1.6rem 1.75rem; border-radius: 16px; color: #fff; overflow: hidden;
  background: linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px) 0 0 / 28px 28px, linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px) 0 0 / 28px 28px, radial-gradient(120% 160% at 100% 0%, #1d4f96 0%, rgba(29, 79, 150, 0) 60%), linear-gradient(135deg, #021e45 0%, #0b3470 100%);
  box-shadow: 0 1px 2px rgba(2, 30, 69, .08), 0 22px 44px -24px rgba(2, 30, 69, .65); }
#wrap .aec-dl-icon { flex: none; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 14px; background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .18); }
#wrap .aec-dl-icon::before, #wrap .aec-dl-btn::before { content: ""; flex: none; background: currentColor; -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/><polyline points='7 10 12 15 17 10'/><line x1='12' x2='12' y1='15' y2='3'/></svg>") center / contain no-repeat; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/><polyline points='7 10 12 15 17 10'/><line x1='12' x2='12' y1='15' y2='3'/></svg>") center / contain no-repeat; }
#wrap .aec-dl-icon::before { width: 26px; height: 26px; color: #fff; }
#wrap .aec-dl-text { flex: 1 1 20rem; min-width: 0; }
#wrap .aec-dl-title { margin: 0 0 .35rem; font-size: 1.3rem; font-weight: 700; line-height: 1.25; letter-spacing: -.01em; color: #fff; }
#wrap .aec-dl-sub { margin: 0; font-size: .95rem; line-height: 1.5; color: rgba(255, 255, 255, .8); }
#wrap .aec-dl-next { margin: .55rem 0 0; font-size: .88rem; line-height: 1.45; color: #bcd3f2; }
#wrap .aec-dl-cta { flex: none; display: flex; flex-direction: column; align-items: center; gap: .6rem; }
#wrap .aec-dl-btn { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-width: 12rem; padding: .9rem 1.7rem; border-radius: 999px; background: #fff; color: #021e45; font-size: 1.08rem; font-weight: 700; line-height: 1; text-decoration: none; box-shadow: 0 10px 24px -10px rgba(0, 0, 0, .55); transition: transform .15s, box-shadow .15s, background-color .15s; }
#wrap .aec-dl-btn::before { width: 20px; height: 20px; }
#wrap .aec-dl-btn:hover { background: #eaf2ff; color: #021e45; transform: translateY(-1px); box-shadow: 0 14px 28px -10px rgba(0, 0, 0, .6); }
#wrap .aec-dl-btn:focus-visible, #wrap .aec-dl-guide:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
#wrap .aec-dl-guide { font-size: .85rem; font-weight: 500; color: rgba(255, 255, 255, .85); text-decoration: underline; text-underline-offset: 3px; }
#wrap .aec-dl-guide:hover { color: #fff; }
@media (prefers-reduced-motion: reduce) { #wrap .aec-dl-btn { transition: none; } #wrap .aec-dl-btn:hover { transform: none; } }
/* "I have a licence key" (Hasan's claim box, view 8479): a quiet line at the bottom that opens; it comes back
   open after a submit (?claim=...), so its message is seen */
#wrap .aec-claim { margin-top: 1.5rem; background: #f7f8fa; border: 1px solid var(--aec-line); border-radius: 12px; }
#wrap .aec-claim > summary { display: flex; align-items: center; gap: .6rem; padding: .9rem 1.1rem; list-style: none; cursor: pointer; font-weight: 600; font-size: .95rem; color: #021e45; }
#wrap .aec-claim > summary::-webkit-details-marker { display: none; }
#wrap .aec-claim > summary::before, #wrap .aec-claim > summary::after { content: ""; flex: none; background: currentColor; }
#wrap .aec-claim > summary::before { width: 18px; height: 18px; -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4'/><path d='m21 2-9.6 9.6'/><circle cx='7.5' cy='15.5' r='5.5'/></svg>") center / contain no-repeat; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4'/><path d='m21 2-9.6 9.6'/><circle cx='7.5' cy='15.5' r='5.5'/></svg>") center / contain no-repeat; }
#wrap .aec-claim > summary::after { width: 14px; height: 14px; margin-left: auto; color: #6b7280; transition: transform .15s; -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>") center / contain no-repeat; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>") center / contain no-repeat; }
#wrap .aec-claim[open] > summary::after { transform: rotate(180deg); }
#wrap .aec-claim > summary:hover { color: #0b3470; }
#wrap .aec-claim > summary:focus-visible { outline: 2px solid #3b82f6; outline-offset: 2px; border-radius: 12px; }
#wrap .aec-claim-body { padding: 0 1.1rem 1.1rem; }
#wrap .aec-claim-sub { margin: 0 0 .85rem; font-size: .88rem; color: #6b7280; }
#wrap .aec-claim .form-control { border-radius: 10px; font-family: var(--aec-mono); font-size: .92rem; background: #fff; }
#wrap .aec-claim .btn { border-radius: 10px; }
#wrap .aec-claim .alert { border-radius: 10px; font-size: .88rem; }
@media (max-width: 767px) {
  #wrap .aec-dl { padding: 1.3rem 1.2rem; }
  #wrap .aec-dl-title { font-size: 1.12rem; }
  #wrap .aec-dl-cta { width: 100%; }
  #wrap .aec-dl-btn { width: 100%; }
}
@media (max-width: 767px) {
  #wrap .aec-lic { padding: 1.25rem 1.1rem 1.1rem 1.35rem; }
  #wrap .aec-lic-fields { grid-template-columns: 1fr; }
  #wrap .aec-lic-until { text-align: left; flex-basis: 100%; }
}
.aec-portal-card a { background: #fff; transition: border-color .2s, box-shadow .2s; }
.aec-portal-card a:hover { border-color: #021e45 !important; box-shadow: 0 8px 20px -12px rgba(2, 30, 69, .35); }
.aec-portal-card strong { color: #111827; }

/* ---------- Pilot AI terminal, live ---------- */
#wrap .aec-terminal.aec-term-live { padding: 0; overflow: hidden; }
#wrap .aec-t-bar { display: flex; align-items: center; gap: .45rem; padding: .7rem 1rem; background: rgba(255, 255, 255, .04); border-bottom: 1px solid rgba(255, 255, 255, .08); }
#wrap .aec-t-bar span { width: 11px; height: 11px; border-radius: 50%; background: #ff5f57; }
#wrap .aec-t-bar span:nth-child(2) { background: #febc2e; }
#wrap .aec-t-bar span:nth-child(3) { background: #28c840; }
#wrap .aec-t-bar b { margin-left: .6rem; font-weight: 500; color: rgba(255, 255, 255, .55); font-size: 12px; }
#wrap .aec-t-bar i { margin-left: auto; font-style: normal; font-size: 11px; color: #7dd3a3; }
#wrap .aec-t-body { padding: 1.1rem 1.4rem 1.2rem; min-height: 150px; }
#wrap .aec-terminal.aec-term-live p, #wrap .aec-terminal.aec-term-live p:first-child { border: 0; padding: 0; margin: 0 0 .6rem; color: #cfe0ff; }
#wrap .aec-t-you { color: #e2e8f0 !important; padding-bottom: .75rem !important; margin-bottom: .85rem !important; border-bottom: 1px solid rgba(255, 255, 255, .08) !important; }
#wrap .aec-t-prompt { color: #93c5fd; font-weight: 600; }
#wrap .aec-t-bot { color: #7dd3a3; }
#wrap .aec-t-spin { color: #febc2e; display: inline-block; min-width: 1.1em; }
#wrap .aec-t-spin.ok { color: #28c840; }
#wrap .aec-t-tool { color: #7dd3fc; }
#wrap .aec-t-res { color: #ffffff; }
#wrap .aec-t-done .aec-t-head { color: #7dd3a3; }
#wrap .aec-t-caret { display: inline-block; margin-left: 2px; color: #fff; animation: aec-blink 1s steps(1) infinite; }
@keyframes aec-blink { 50% { opacity: 0; } }

/* ---------- 2026-09-27: tool and docs pages, mobile ---------- */
/* side navigation: group names read as labels, the page you are on is marked (aecpilot_fx.js adds .aec-current) */
#wrap .aec-sidenav > p:first-child a { font-weight: 600; color: #111827; }
#wrap .aec-sidenav > p:not(:first-child) { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #6b7280; margin: 1.25rem 0 .35rem .5rem; }
#wrap .aec-sidenav > p:not(:first-child) .aec-ico { width: 12px; height: 12px; }
#wrap .aec-sidenav a.aec-current, #wrap .aec-sidenav a.aec-current:hover { background: #021e45; color: #fff; font-weight: 500; }
@media (max-width: 991.98px) { #wrap .aec-sidenav { position: static; max-height: none; overflow: visible; } }
/* breadcrumb "Toolbox / Quality" (aecpilot_fx.js splits the text into these spans) */
#wrap .aec-crumbs { font-size: .875rem; color: #6b7280; }
#wrap .aec-crumbs a { color: #6b7280; text-decoration: none; }
#wrap .aec-crumbs a:hover { color: #021e45; }
#wrap .aec-crumb-sep { margin: 0 .5rem; color: #9ca3af; }
#wrap .aec-crumb-current { color: #111827; font-weight: 500; }
/* an icon box that opens a paragraph (highlights, "What it installs", the pricing list) sits beside
   the text with a steady gap, centred on the first line - also when the text wraps */
#wrap .aec-icon-box-sm { --aec-box: 1.35rem; }
#wrap .aec-icon-box-md { --aec-box: 2.25rem; }
#wrap .aec-icon-box-lg { --aec-box: 3rem; }
#wrap .aec-iconrow .aec-icon-box-sm { --aec-box: 2.25rem; }
#wrap .aec-card-head .aec-icon-box-md { --aec-box: 1.9rem; }
#wrap p:has(> .aec-icon-box:first-child) { display: flex; align-items: flex-start; gap: .75rem; }
#wrap p:has(> .aec-icon-box:first-child) > .aec-icon-box { margin-top: calc((1lh - var(--aec-box)) / 2); }
/* icons inside buttons and in "Back to all tools" style links: a gap, on the text's centre line */
#wrap .btn:has(> svg) { display: inline-flex; align-items: center; justify-content: center; }
#wrap .btn > svg:first-child { margin-right: .5em; flex: none; }
#wrap a:not(.btn) > svg.aec-ico:first-child { margin-right: .4em; vertical-align: -.15em; }
/* phones: one highlight per row, like the original site */
@media (max-width: 767.98px) { #wrap .aec-article .row > .col-6 { flex: 0 0 100%; max-width: 100%; } }
/* phones: the menu covers the whole screen, and the chat button stays out of its way */
@media (max-width: 991.98px) { #top_menu_collapse_mobile { --offcanvas-width: 100%; } }
/* ...and the Product panel that slides over it is full width too (it kept the old 342 px and left a strip of the menu behind showing) */
@media (max-width: 991.98px) { header#top .o_mega_menu_is_offcanvas .o_mega_menu.aec-mega { left: 0 !important; right: 0 !important; width: 100% !important; max-width: none !important; } }
body:has(#top_menu_collapse_mobile.show) .o-livechat-root, body:has(#top_menu_collapse_mobile.showing) .o-livechat-root { display: none !important; }

/* ---------- 2026-09-27: /install download block ---------- */
#wrap .btn.aec-dl-main { font-size: 1.05rem; padding: .7rem 1.45rem; font-weight: 600; margin-bottom: .6rem !important; }
#wrap .aec-dl-meta { font-family: var(--aec-mono); font-size: .8rem; letter-spacing: .02em; opacity: .7; margin: 0; }
@media (max-width: 575.98px) { #wrap .aec-dl-meta { font-size: .72rem; } }
#wrap .aec-dl-products { margin-top: 2.25rem; padding-top: 1.75rem; border-top: 1px solid rgba(255, 255, 255, .12); }
#wrap .aec-dl-products .aec-label { margin-bottom: 1rem; }
#wrap .aec-dl-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .85rem; }
@media (max-width: 991.98px) { #wrap .aec-dl-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { #wrap .aec-dl-grid { grid-template-columns: 1fr; } }
#wrap a.aec-dl-card { display: flex; align-items: center; gap: .9rem; padding: .95rem 1.05rem; border-radius: 14px; border: 1px solid rgba(255, 255, 255, .12); background: rgba(255, 255, 255, .04); color: #fff; text-decoration: none; transition: border-color .2s, background-color .2s, transform .2s; }
#wrap a.aec-dl-card:hover, #wrap a.aec-dl-card:focus-visible { border-color: rgba(255, 255, 255, .35); background: rgba(255, 255, 255, .08); transform: translateY(-2px); }
#wrap a.aec-dl-card:hover .aec-icon-box { background: rgba(255, 255, 255, .18); }
#wrap .aec-dl-text { display: flex; flex-direction: column; flex: 1; min-width: 0; }
#wrap .aec-dl-text strong { font-weight: 600; line-height: 1.3; }
#wrap .aec-dl-text small { font-family: var(--aec-mono); font-size: .72rem; opacity: .6; margin-top: .2rem; }
#wrap .aec-dl-card .aec-dl-arrow { flex: none; opacity: .45; transition: opacity .2s, transform .2s; }
#wrap a.aec-dl-card:hover .aec-dl-arrow { opacity: 1; transform: translateY(2px); }
#wrap .aec-dl-note { font-size: .85rem; opacity: .65; margin: 1rem 0 0; }

/* ---------- 2026-09-27: screenshots open full screen (aecpilot_fx.js adds .aec-zoom) ---------- */
#wrap .aec-zoom { position: relative; display: inline-block; max-width: 100%; vertical-align: top; cursor: zoom-in; border-radius: var(--bs-border-radius, .375rem); transition: box-shadow .25s; }
#wrap .aec-zoom > img { display: block; }
#wrap .aec-zoom:hover { box-shadow: 0 14px 34px -14px rgba(2, 30, 69, .45); }
#wrap .aec-zoom:focus-visible { outline: 2px solid #3b6fb5; outline-offset: 3px; }
#wrap .aec-zoom-badge { position: absolute; top: .75rem; right: .75rem; width: 2.25rem; height: 2.25rem; display: flex; align-items: center; justify-content: center; border-radius: .5rem; background: rgba(2, 30, 69, .82); color: #fff; opacity: 0; transition: opacity .2s; pointer-events: none; }
#wrap .aec-zoom:hover .aec-zoom-badge, #wrap .aec-zoom:focus-visible .aec-zoom-badge { opacity: 1; }
@media (hover: none) { #wrap .aec-zoom-badge { opacity: .9; } }
.aec-lightbox { position: fixed; inset: 0; z-index: 2000; display: flex; align-items: center; justify-content: center; padding: 1rem; background: rgba(0, 0, 0, .82); backdrop-filter: blur(4px); opacity: 0; transition: opacity .2s; cursor: zoom-out; }
.aec-lightbox.aec-open { opacity: 1; }
.aec-lightbox > img { max-width: 94vw; max-height: 92vh; object-fit: contain; border-radius: .5rem; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, .6); cursor: default; background: #fff; }
.aec-lightbox-close { position: absolute; top: 1.25rem; right: 1.25rem; width: 2.5rem; height: 2.5rem; display: flex; align-items: center; justify-content: center; border-radius: .5rem; border: 1px solid rgba(255, 255, 255, .2); background: rgba(255, 255, 255, .1); color: #fff; cursor: pointer; }
.aec-lightbox-close:hover { background: rgba(255, 255, 255, .2); }
body:has(.aec-lightbox) .o-livechat-root { display: none !important; }

/* ---------- 2026-09-27: application tiles (home hero, /mcp) ---------- */
#wrap .aec-apps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin: .5rem 0 1.25rem; }
#wrap .aec-apps-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 991.98px) { #wrap .aec-apps-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { #wrap .aec-apps, #wrap .aec-apps-3 { grid-template-columns: 1fr; } }
#wrap a.aec-app { display: flex; align-items: center; gap: .85rem; padding: .85rem 1rem; border-radius: 14px; background: #fff; border: 1px solid var(--aec-line); color: #111827; text-decoration: none; transition: border-color .2s, box-shadow .2s, transform .2s; }
#wrap a.aec-app:hover, #wrap a.aec-app:focus-visible { border-color: #b8c4d6; box-shadow: 0 12px 28px -14px rgba(2, 30, 69, .35); transform: translateY(-2px); }
#wrap a.aec-app:hover .aec-icon-box { background: linear-gradient(135deg, #021e45, #3b6fb5); color: #fff; }
#wrap .aec-app-text { display: flex; flex-direction: column; flex: 1; min-width: 0; }
#wrap .aec-app-text strong { font-weight: 600; line-height: 1.3; }
#wrap .aec-app-text small { font-family: var(--aec-mono); font-size: .72rem; color: #6b7280; margin-top: .15rem; }
#wrap .aec-app .aec-app-arrow { flex: none; width: 16px; height: 16px; color: #9ca3af; transition: color .2s, transform .2s; }
#wrap a.aec-app:hover .aec-app-arrow { color: #021e45; transform: translate(2px, -2px); }
#wrap .aec-apps-more { margin-bottom: .25rem; }
#wrap .aec-apps-more a { font-weight: 500; text-decoration: none; }

/* ---------- 2026-09-27: "See it in action" tabs + videos that play in place (aecpilot_fx.js) ---------- */
#wrap .aec-demos { max-width: 56rem; margin: 2.5rem auto 0; }
#wrap .aec-demo-label { font-weight: 600; margin: 1.75rem 0 .75rem; }
#wrap .aec-demo-tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin-bottom: 1.25rem; }
#wrap .aec-demo-tab { border: 1px solid var(--aec-line); background: #fff; color: var(--aec-ink-2); border-radius: 999px; padding: .5rem 1.05rem; font-size: .875rem; font-weight: 600; line-height: 1.3; transition: background-color .2s, border-color .2s, color .2s, transform .2s; }
#wrap .aec-demo-tab:hover { border-color: #b8c4d6; color: #021e45; transform: translateY(-1px); }
#wrap .aec-demo-tab[aria-selected="true"] { background: #021e45; border-color: #021e45; color: #fff; transform: none; }
#wrap .aec-demos.aec-tabbed .aec-demo-label { display: none; }
#wrap .aec-demos.aec-tabbed .aec-demo:not(.aec-active) { display: none; }
#wrap .aec-video-cap { text-align: center; font-family: var(--aec-mono); font-size: .75rem; color: #6b7280; margin: .75rem 0 1rem; }
#wrap .aec-video iframe { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; }
#wrap .aec-video.aec-short iframe { aspect-ratio: 9 / 16; }
#wrap .aec-video.aec-playing::after { display: none; }
/* the Shorts, the label and the YouTube link sit in the same column as the demos, not full width */
#wrap #showcase .aec-demos ~ * { max-width: 56rem; margin-left: auto; margin-right: auto; }
#wrap #showcase .aec-demos ~ p { text-align: center; }
#wrap #showcase .aec-demos + p { margin-top: 3rem; margin-bottom: 1.25rem; }
#wrap #showcase .aec-demos + p .font-monospace { letter-spacing: .14em; color: #6b7280; }

/* ---------- 2026-09-27: alignment ---------- */
/* the hero lines up with the header and every other section (Bootstrap's container widths, not 1180 px).
   100% = the hero row's width: a panel's padding percentage resolves against it, and unlike 100vw it
   leaves the scrollbar out, which put the hero 4-5 px off the header. */
/* Odoo's gutter is 15 px a side (Bootstrap's is 12) */
#wrap .aec-split { --aec-gutter: max(15px, calc((100% - 1320px) / 2 + 15px)); }
@media (max-width: 1399.98px) { #wrap .aec-split { --aec-gutter: max(15px, calc((100% - 1140px) / 2 + 15px)); } }
@media (max-width: 1199.98px) { #wrap .aec-split { --aec-gutter: max(15px, calc((100% - 960px) / 2 + 15px)); } }
@media (max-width: 991.98px) { #wrap .aec-split { --aec-gutter: max(15px, calc((100% - 720px) / 2 + 15px)); } }
@media (max-width: 767.98px) { #wrap .aec-split { --aec-gutter: max(15px, calc((100% - 540px) / 2 + 15px)); } }
#wrap .aec-split > .aec-panel:first-child { padding-left: var(--aec-gutter); }
#wrap .aec-split > .aec-panel:last-child { padding-right: var(--aec-gutter); }
@media (max-width: 991.98px) { #wrap .aec-split > .aec-panel { padding-left: var(--aec-gutter); padding-right: var(--aec-gutter); } }
/* the hero's accent phrase moves to the next line as one piece ("AEC software." never splits) */
#wrap .aec-split h1 .aec-accent { white-space: nowrap; }
/* a link that ends in an arrow keeps a gap before it ("... delivery →") */
#wrap a:not(.btn) > svg.aec-ico:last-child:not(:first-child) { margin-left: .35em; vertical-align: -.15em; }
/* Pilot AI: the "MCP guides" button sits under the centred section, centred */
#wrap #ai p:has(> a[href="/mcp"]) { text-align: center; margin-top: 1.75rem; }
/* tool pages: a title that fits the column beside the side menu, and text lines of a readable length */
#wrap .aec-article h1 { font-size: clamp(2rem, 1.4rem + 1.6vw, 2.6rem); }
#wrap .aec-article > p:not(:has(img, .aec-video, .btn)), #wrap .aec-article > ul, #wrap .aec-article > ol { max-width: 48rem; }
/* a page that ends on a dark call to action (the home page) no longer runs into the dark footer:
   the section goes light and the call to action becomes a navy card, with the hero's grid and a faint mark */
#wrap > section.o_cc4:last-child { background: #eef2f8 !important; padding-top: 5rem !important; padding-bottom: 5rem !important; overflow: visible; }
#wrap > section.o_cc4:last-child::before, #wrap > section.o_cc4:last-child::after { display: none; }
#wrap > section.o_cc4:last-child > .container { position: relative; overflow: hidden; isolation: isolate; border-radius: 24px; padding: 3.5rem 3rem;
  background: linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px) 0 0 / 32px 32px, linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px) 0 0 / 32px 32px,
    radial-gradient(60% 90% at 0% 0%, rgba(37, 99, 235, .35), transparent 70%), #021e45;
  box-shadow: 0 30px 60px -30px rgba(2, 30, 69, .55); }
#wrap > section.o_cc4:last-child > .container::after { content: ""; position: absolute; z-index: -1; right: -40px; top: 50%; width: 300px; height: 300px; transform: translateY(-50%); opacity: .06;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='28 25.6 456 461'%3E%3Cpath fill='white' d='M245.96 105.68 L217.04 169.08 L102.4 273.88 L102.73 284.03 L173.8 341.17 L183.95 340.84 L325.07 211.84 L341.49 223.79 L221.7 486.4 L211.55 486.4 L28.02 338.84 L28.02 220.09 L235.81 30.14 L245.96 30.14 Z'/%3E%3Cpath fill='white' d='M266.04 406.32 L294.96 342.92 L409.6 238.12 L409.27 227.97 L338.2 170.83 L328.05 171.16 L186.93 300.16 L170.51 288.21 L290.3 25.6 L300.45 25.6 L483.98 173.16 L483.98 291.91 L276.19 481.86 L266.04 481.86 Z'/%3E%3C/svg%3E") center / contain no-repeat; }
@media (max-width: 767.98px) { #wrap > section.o_cc4:last-child > .container { padding: 2.25rem 1.5rem; border-radius: 18px; width: calc(100% - 2rem); } }

/* the Product menu in three columns: Explore | Applications | AI & MCP (2026-09-27) */
header#top .o_mega_menu.aec-mega { width: min(61rem, calc(100vw - 2rem)); }
/* it opens under the logo, on the page's container line, not glued to the window's left edge */
@media (min-width: 992px) { header#top .o_mega_menu.aec-mega { left: max(15px, calc((100% - 960px) / 2 + 15px)) !important; } }
@media (min-width: 1200px) { header#top .o_mega_menu.aec-mega { left: max(15px, calc((100% - 1140px) / 2 + 15px)) !important; } }
@media (min-width: 1400px) { header#top .o_mega_menu.aec-mega { left: max(15px, calc((100% - 1320px) / 2 + 15px)) !important; } }
.aec-mm-apps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .15rem; }
.aec-mm-app { display: flex; align-items: center; gap: .55rem; padding: .5rem .6rem; border-radius: 10px; font-size: .86rem; font-weight: 600; color: #111827 !important; text-decoration: none !important; white-space: nowrap; transition: background-color .15s; }
.aec-mm-app:hover { background: #eef2f8; }
.aec-mm-app .aec-mm-ico { width: 1.75rem; height: 1.75rem; margin-top: 0; }
.aec-mm-app:hover .aec-mm-ico { background: #021e45; color: #fff; }
/* header: links and "Sign in" readable on navy (they were 55 % white, the button's border 8 %) */
header#top .navbar .nav-link { color: rgba(255, 255, 255, .82); }
header#top .navbar .nav-link:hover, header#top .navbar .nav-link:focus-visible, header#top .navbar .nav-link.active,
header#top .navbar .show > .nav-link { color: #fff; }
header#top .o_nav_link_btn.border { border-color: rgba(255, 255, 255, .28) !important; color: #fff; }
header#top .o_nav_link_btn.border:hover { border-color: rgba(255, 255, 255, .55) !important; background: rgba(255, 255, 255, .06); }
/* screenshot cards show the top of the window (title bar, first rows), not a slice from the middle */
#wrap .o_card_img_wrapper > img.object-fit-cover { object-position: top center; }

/* ---------- 2026-09-27: home hero, left panel ---------- */
/* a headline sized to the panel: "Your co-pilot for" stays on one line at every width */
#wrap .aec-split h1.display-5 { font-size: clamp(2.5rem, calc((50vw - 9rem) / 7.6), 4.5rem); line-height: 1.02; letter-spacing: -.04em; margin-bottom: 1.6rem; }
@media (max-width: 991.98px) { #wrap .aec-split h1.display-5 { font-size: clamp(2.5rem, 8.5vw, 3.75rem); } }
#wrap .aec-split .aec-panel.o_cc4 .lead { font-size: 1.2rem; max-width: 34rem; }
#wrap .aec-split .aec-panel.o_cc4 .aec-eyebrow { font-size: .78rem; margin-bottom: 1.4rem; }
/* the structural frame drawn behind it (aecpilot_fx.js adds .aec-hero-art, from tasks/hero_drawing.py), text above it */
#wrap .aec-split > .aec-panel.o_cc4 > :not(.aec-hero-art) { position: relative; z-index: 1; }
#wrap .aec-hero-art { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
#wrap .aec-hero-drawing { position: absolute; right: -5%; bottom: -5%; width: min(60%, 540px); height: auto; opacity: .8;
  -webkit-mask-image: radial-gradient(120% 115% at 100% 100%, #000 45%, transparent 80%); mask-image: radial-gradient(120% 115% at 100% 100%, #000 45%, transparent 80%); }
#wrap .aec-hero-drawing path, #wrap .aec-hero-drawing circle { fill: none; stroke: #7fb2ff; stroke-linecap: round; }
#wrap .aec-hero-drawing .g { stroke-width: 1; stroke-dasharray: 7 6; opacity: .4; }
#wrap .aec-hero-drawing .c, #wrap .aec-hero-drawing .b { stroke-width: 1.4; opacity: .75; }
#wrap .aec-hero-drawing .k { stroke-width: 1; opacity: .5; }
#wrap .aec-hero-drawing .o, #wrap .aec-hero-drawing .d, #wrap .aec-hero-drawing .t { stroke-width: 1.2; opacity: .85; }
#wrap .aec-hero-drawing text { fill: #7fb2ff; font: 600 10px "IBM Plex Mono", monospace; text-anchor: middle; }
#wrap .aec-hero-drawing .v { font-weight: 500; font-size: 11px; opacity: .85; }
/* drawn in: frame lines one after another, then the grid, bubbles and dimension fade up */
#wrap .aec-hero-drawing .c, #wrap .aec-hero-drawing .b, #wrap .aec-hero-drawing .k, #wrap .aec-hero-drawing .d { stroke-dasharray: var(--l); stroke-dashoffset: var(--l); }
#wrap .aec-hero-drawing .g, #wrap .aec-hero-drawing .o, #wrap .aec-hero-drawing .t, #wrap .aec-hero-drawing text { opacity: 0; }
#wrap .aec-draw .aec-hero-drawing .c, #wrap .aec-draw .aec-hero-drawing .b, #wrap .aec-draw .aec-hero-drawing .k, #wrap .aec-draw .aec-hero-drawing .d { animation: aec-draw .9s cubic-bezier(.4, 0, .2, 1) forwards; animation-delay: calc(var(--i) * 45ms + .35s); }
#wrap .aec-draw .aec-hero-drawing .g { animation: aec-fade-40 .8s ease forwards .2s; }
#wrap .aec-draw .aec-hero-drawing .o, #wrap .aec-draw .aec-hero-drawing .t, #wrap .aec-draw .aec-hero-drawing text { animation: aec-fade-85 .8s ease forwards 2.4s; }
@keyframes aec-draw { to { stroke-dashoffset: 0; } }
@keyframes aec-fade-40 { to { opacity: .4; } }
@keyframes aec-fade-85 { to { opacity: .85; } }
@media (prefers-reduced-motion: reduce) {
  #wrap .aec-hero-drawing .c, #wrap .aec-hero-drawing .b, #wrap .aec-hero-drawing .k, #wrap .aec-hero-drawing .d { stroke-dashoffset: 0; animation: none !important; }
  #wrap .aec-hero-drawing .g { opacity: .4; animation: none !important; }
  #wrap .aec-hero-drawing .o, #wrap .aec-hero-drawing .t, #wrap .aec-hero-drawing text { opacity: .85; animation: none !important; }
}
@media (max-width: 991.98px) { #wrap .aec-hero-drawing { width: 78%; opacity: .35; } }
/* a CAD status-bar readout of the pointer, in millimetres (placed on the text's line by the script) */
#wrap .aec-hero-xy { position: absolute; bottom: 1.4rem; font: 500 .7rem "IBM Plex Mono", monospace; letter-spacing: .06em; color: rgba(255, 255, 255, .45); white-space: nowrap; }
#wrap .aec-hero-xy span { color: #7fb2ff; margin-right: .35em; }
#wrap .aec-hero-xy b { font-weight: 500; display: inline-block; min-width: 7ch; margin-right: 1.2em; }
@media (hover: none) { #wrap .aec-hero-xy { display: none; } }

/* ---------- 2026-09-27: easy-on-the-eye pass (pricing, contact, docs, product pages) ---------- */
/* side menu: the current page on the first row ("Documentation") kept dark text on the navy bar */
#wrap .aec-sidenav > p:first-child a.aec-current { color: #fff; }
/* the side menu's note card: its link stays inside the sentence instead of taking a line of its own */
#wrap .aec-sidenav .card a { display: inline; padding: 0; margin: 0; background: none; font-weight: 600; }
/* notes ("One licence, every product", "Every profile is checked first"): the first line is the title */
#wrap .aec-iconrow-body > p:first-child { font-weight: 600; color: #111827; margin-bottom: .25rem; }
#wrap .o_cc4 .aec-iconrow-body > p:first-child { color: #fff; }
/* phones: the article first, its side menu after it (it was a screen of links before the title) */
@media (max-width: 991.98px) { #wrap .row > .aec-sidenav { order: 2; } #wrap .row > .aec-article { order: 1; } }
/* pricing: the three plans' buttons on one line ("Most popular" made the middle card's sit lower) */
#wrap .card.h-100 > .card-body:has(> p > a[href="/signup"]) { display: flex; flex-direction: column; }
#wrap .card.h-100 > .card-body > p:last-child:has(> a[href="/signup"]) { margin-top: auto; margin-bottom: 0; }
/* "Included on every plan": tighter rows, and one column on phones */
#wrap .card-body > .row > .col-6:has(> p > .aec-icon-box-sm) { margin-bottom: .6rem !important; }
@media (max-width: 575.98px) { #wrap .card-body > .row > .col-6:has(> p > .aec-icon-box-sm) { flex: 0 0 100%; max-width: 100%; } }
/* contact: both offices in the brand's blue (the Estonian one was violet) */
#wrap .aec-office-ico.aec-grad-violet { background: linear-gradient(135deg, #5b9bf0, #021e45); box-shadow: 0 6px 16px -4px rgba(59, 130, 246, .45); }
/* pages built of consecutive white sections (the product pages): one gap between them, not two */
#wrap section.o_cc1.pt64.pb64 + section.o_cc1.pt64 { padding-top: 0 !important; }
/* home "Pilot AI" cards: the lede and the ticked list were glued together (user, 27 Sep) */
#wrap .card.aec-glass .card-body > h3 { margin-bottom: .5rem; }
#wrap .card.aec-glass .card-body > p:not(:has(> .aec-icon-box)) { margin-bottom: 0; }
#wrap .card.aec-glass .card-body > ul:has(> li > .aec-icon-box:first-child) { display: grid; gap: .8rem; margin: 1.25rem 0 0; padding-top: 1.25rem; border-top: 1px solid rgba(255, 255, 255, .1); }
#wrap .card.aec-glass .card-body > ul:has(> li > .aec-icon-box:first-child) li { margin: 0; align-items: center; gap: .7rem; }
#wrap .card.aec-glass .card-body > ul:has(> li > .aec-icon-box:first-child) li > .aec-icon-box { margin: 0; flex: none; }
/* Pilot Chat demo: one scene per application under app tabs; without the script only the first scene shows */
#wrap .aec-terminal:not(.aec-term-live) .aec-t-scene:not(:first-child) { display: none; }
#wrap .aec-t-bar b em { font-style: normal; color: rgba(255, 255, 255, .85); }
#wrap .aec-t-tabs { position: relative; display: flex; gap: .15rem; padding: 0 .75rem; overflow-x: auto; scrollbar-width: none; border-bottom: 1px solid rgba(255, 255, 255, .08); background: rgba(255, 255, 255, .02); }
#wrap .aec-t-tabs::-webkit-scrollbar { display: none; }
#wrap .aec-t-tabs button { flex: none; background: none; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; padding: .55rem .7rem; font: 500 12px/1 var(--aec-mono); color: rgba(207, 224, 255, .5); white-space: nowrap; cursor: pointer; transition: color .2s, border-color .2s; }
#wrap .aec-t-tabs button:hover { color: #fff; }
#wrap .aec-t-tabs button.on { color: #fff; border-bottom-color: #5b9bf0; }
#wrap .aec-t-tabs button:focus-visible { outline: 2px solid #5b9bf0; outline-offset: -2px; }
#wrap .aec-t-body { min-height: 172px; }
@media (max-width: 767.98px) { #wrap .aec-t-body { min-height: 250px; padding: 1rem; } }
/* ---------- header (27 Sep, user: "not quite there - let's think of something"; approved on the before/after):
   a little taller, the site's dimension line under the hovered and the current link, a compact language switch,
   pills that match, a frosted bar once the page scrolls, and the trial button in the phone header too ---------- */
header#top nav.navbar { transition: padding .25s ease, background-color .25s ease, box-shadow .25s ease; }
@media (min-width: 992px) {
  header#top nav.navbar:not(.o_header_mobile) { padding-top: .55rem; padding-bottom: .55rem; }
  header#top #top_menu > .nav-item > .nav-link { padding-left: .85rem; padding-right: .85rem; font-weight: 500; }
  header#top #top_menu > .nav-item > .nav-link > span { position: relative; display: inline-block; }
  header#top #top_menu > .nav-item > .nav-link > span::after { content: ""; position: absolute; left: -.2em; right: -.2em; bottom: -.5em; height: .42em; pointer-events: none;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 0V12' stroke='%235b9bf0' stroke-width='1.2'/%3E%3Cpath d='M1.5 10.5L10.5 1.5' stroke='%235b9bf0' stroke-width='1.8'/%3E%3C/svg%3E") left center / .42em .42em no-repeat,
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 0V12' stroke='%235b9bf0' stroke-width='1.2'/%3E%3Cpath d='M1.5 10.5L10.5 1.5' stroke='%235b9bf0' stroke-width='1.8'/%3E%3C/svg%3E") right center / .42em .42em no-repeat,
      linear-gradient(#5b9bf0, #5b9bf0) center / calc(100% - .15em) 1.5px no-repeat;
    transform: scaleX(0); transform-origin: left center; transition: transform .35s cubic-bezier(.2, .8, .2, 1); }
  header#top #top_menu > .nav-item > .nav-link:hover > span::after,
  header#top #top_menu > .nav-item > .nav-link:focus-visible > span::after,
  header#top #top_menu > .nav-item > .nav-link.active > span::after,
  header#top #top_menu > .nav-item.show > .nav-link > span::after { transform: scaleX(1); }
  /* language: a globe and the two-letter code; the full name stays in the markup for screen readers */
  header#top nav.navbar:not(.o_header_mobile) .o_header_language_selector { padding-right: .6rem; margin-right: .1rem; border-right: 1px solid rgba(255, 255, 255, .14); }
  header#top nav.navbar:not(.o_header_mobile) .js_language_selector > .dropdown-toggle { display: inline-flex; align-items: center; gap: .4rem; }
  header#top nav.navbar:not(.o_header_mobile) .js_language_selector > .dropdown-toggle::before { content: ""; width: 16px; height: 16px; background: currentColor; opacity: .8;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20'/%3E%3Cpath d='M2 12h20'/%3E%3C/svg%3E") center / contain no-repeat;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20'/%3E%3Cpath d='M2 12h20'/%3E%3C/svg%3E") center / contain no-repeat; }
  header#top nav.navbar:not(.o_header_mobile) .js_language_selector > .dropdown-toggle > span { font-size: 0; }
  header#top nav.navbar:not(.o_header_mobile) .js_language_selector > .dropdown-toggle > span::after { content: "EN"; font-size: .85rem; font-weight: 600; letter-spacing: .05em; }
  html[lang^="tr"] header#top nav.navbar:not(.o_header_mobile) .js_language_selector > .dropdown-toggle > span::after { content: "TR"; }
  html[lang^="de"] header#top nav.navbar:not(.o_header_mobile) .js_language_selector > .dropdown-toggle > span::after { content: "DE"; }
  html[lang^="fr"] header#top nav.navbar:not(.o_header_mobile) .js_language_selector > .dropdown-toggle > span::after { content: "FR"; }
  html[lang^="it"] header#top nav.navbar:not(.o_header_mobile) .js_language_selector > .dropdown-toggle > span::after { content: "IT"; }
  html[lang^="es"] header#top nav.navbar:not(.o_header_mobile) .js_language_selector > .dropdown-toggle > span::after { content: "ES"; }
}
/* Sign in and the trial button: the same pill, the trial one with an arrow that nudges on hover */
header#top .o_nav_link_btn.border { border-radius: 999px !important; padding: .42rem 1.05rem !important; }
header#top .btn_cta { display: inline-flex; align-items: center; gap: .45rem; padding: .45rem 1.1rem; font-weight: 600; }
header#top .btn_cta::after { content: ""; width: 14px; height: 14px; background: currentColor; transition: transform .2s ease;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") center / contain no-repeat; }
header#top .btn_cta:hover::after { transform: translateX(3px); }
/* frosted once the page has scrolled (fx.js sets .aec-scrolled) */
header#top.aec-scrolled nav.navbar { background-color: rgba(2, 30, 69, .93) !important; -webkit-backdrop-filter: saturate(160%) blur(14px); backdrop-filter: saturate(160%) blur(14px);
  box-shadow: 0 12px 32px -16px rgba(0, 0, 0, .55), inset 0 -1px 0 rgba(255, 255, 255, .08); }
@media (min-width: 992px) { header#top.aec-scrolled nav.navbar:not(.o_header_mobile) { padding-top: .3rem; padding-bottom: .3rem; } }
/* phone: the trial button next to the menu button (fx.js copies it there) */
@media (max-width: 991.98px) {
  header#top .o_header_mobile .o_main_nav { flex-wrap: nowrap; }
  header#top .o_header_mobile .navbar-brand img { max-height: 30px; width: auto; }
  header#top .aec-m-cta .btn_cta { padding: .32rem .8rem; font-size: .78rem; white-space: nowrap; box-shadow: none; }
  header#top .aec-m-cta .btn_cta::after { display: none; }
}
@media (max-width: 359.98px) { header#top .aec-m-cta { display: none; } }
/* ---------- home "01 The toolbox" showcase (27 Sep, option A): the tools as a list, one picture beside it; fx.js makes
   the list pick the picture and play by itself (.aec-show-live). Without it: a list of links and the first picture ---------- */
#wrap .aec-show { display: grid; grid-template-columns: minmax(300px, 400px) minmax(0, 660px); justify-content: center; gap: 2.5rem; align-items: center; margin-top: 2.25rem; }
#wrap .aec-show + p { margin-top: 2.25rem; text-align: center; }
#wrap .aec-show-list { display: flex; flex-direction: column; gap: .3rem; }
#wrap .aec-show-item { position: relative; display: flex; align-items: center; gap: .9rem; padding: .65rem .85rem; border: 1px solid transparent; border-radius: 14px;
  color: inherit; text-decoration: none; overflow: hidden; transition: background-color .2s, border-color .2s, box-shadow .2s; }
#wrap .aec-show-item:hover { background: rgba(255, 255, 255, .65); }
#wrap .aec-show-item.on { background: #fff; border-color: #e5e7eb; box-shadow: 0 14px 34px -22px rgba(2, 30, 69, .45); }
#wrap .aec-show-thumb { flex: none; width: 64px; height: 40px; border-radius: 8px; overflow: hidden; border: 1px solid #e5e7eb; background: #f3f4f6; }
#wrap .aec-show-thumb img { width: 100%; height: 100%; object-fit: cover; object-position: top left; }
#wrap .aec-show-txt { min-width: 0; }
#wrap .aec-show-txt p, #wrap .aec-show-txt h3 { margin: 0; }
#wrap .aec-tb-cat { font: 600 10.5px/1.3 var(--aec-mono, monospace); letter-spacing: .08em; text-transform: uppercase; color: #3b6fb5; }
#wrap .aec-show-name { font-size: 1rem; font-weight: 700; line-height: 1.3; color: #0f172a; }
#wrap .aec-show-txt .aec-tb-desc { font-size: .86rem; line-height: 1.45; color: #6b7280; margin-top: .1rem; }
#wrap .aec-show-live .aec-show-item:not(.on) .aec-tb-desc, #wrap .aec-show-live .aec-show-item:not(.on) .aec-tb-cat { display: none; }
/* the bar is drawn by fx.js from the same clock that switches the tools (28 Sep: a CSS animation drifted from the timer) */
#wrap .aec-show-bar { position: absolute; left: 0; bottom: 0; width: 100%; height: 2px; background: #5b9bf0; transform: scaleX(0); transform-origin: left; will-change: transform; }
/* the open row always has the same height - category, name, two lines of text - so the section never jumps */
#wrap .aec-show-live .aec-show-item.on .aec-tb-desc { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.9em; }
#wrap .aec-show-stage { min-width: 0; }
#wrap .aec-show-frame { display: block; aspect-ratio: 16 / 10; border-radius: 16px; overflow: hidden; background: #fff; border: 1px solid #e5e7eb; box-shadow: 0 30px 60px -30px rgba(2, 30, 69, .45); }
#wrap .aec-show-frame img { width: 100%; height: 100%; object-fit: cover; object-position: top left; }
#wrap .aec-show-frame img.aec-in { animation: aec-show-in .45s ease; }
@keyframes aec-show-in { from { opacity: 0; transform: scale(1.015); } }
#wrap .aec-show-desc { display: none; }
#wrap .aec-show-cap { margin: .9rem 0 0; text-align: right; }
#wrap .aec-show-more { display: inline-flex; align-items: center; gap: .35rem; font-weight: 600; color: #021e45; text-decoration: none; }
#wrap .aec-show-more svg { transition: transform .2s; }
#wrap .aec-show-more:hover svg { transform: translateX(3px); }
@media (prefers-reduced-motion: reduce) { #wrap .aec-show-frame img.aec-in { animation: none; } }
@media (max-width: 991.98px) {
  #wrap .aec-show { grid-template-columns: 1fr; gap: 1rem; }
  #wrap .aec-show-list { flex-direction: row; overflow-x: auto; scrollbar-width: none; margin: 0 -15px; padding: 0 15px .25rem; }
  #wrap .aec-show-list::-webkit-scrollbar { display: none; }
  #wrap .aec-show-item { flex: none; padding: .5rem .85rem; }
  #wrap .aec-show-thumb, #wrap .aec-show-item .aec-tb-desc, #wrap .aec-show-item .aec-tb-cat, #wrap .aec-show-live .aec-show-item.on .aec-tb-desc { display: none; }
  #wrap .aec-show-name { font-size: .92rem; white-space: nowrap; }
  #wrap .aec-show-desc { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.9em; line-height: 1.45;
    margin: .9rem 0 0; font-size: .92rem; color: #4b5563; }  /* always two lines tall: the section does not jump between tools */
  #wrap .aec-show-cap { margin-top: .5rem; text-align: left; }
}
/* ---------- legal pages (privacy, terms, refunds; 29 Sep): the three as tabs, the page's sections beside the text
   (sticky on a desktop, above it on a phone), calm headings, the company line as a note. Markup: tasks/legal_layout.py ---------- */
#wrap .aec-legal { display: grid; grid-template-columns: 220px minmax(0, 720px); column-gap: 3.5rem; justify-content: center; align-items: start; }
#wrap .aec-legal-tabs { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 2.5rem; }
#wrap .aec-legal-tabs a { display: inline-flex; align-items: center; padding: .45rem 1rem; border: 1px solid #dfe5ee; border-radius: 999px; color: var(--aec-ink-2, #374151);
  font-size: .9rem; font-weight: 500; text-decoration: none; background: #fff; transition: border-color .2s, color .2s, background-color .2s; }
#wrap .aec-legal-tabs a:hover { border-color: #b9c8de; color: var(--aec-navy, #021e45); }
#wrap .aec-legal-tabs a.on { background: var(--aec-navy, #021e45); border-color: var(--aec-navy, #021e45); color: #fff; }
#wrap .aec-legal-nav { position: sticky; top: 6rem; max-height: calc(100vh - 7rem); overflow: auto; }
#wrap .aec-legal-nav ol { list-style: none; margin: 0; padding: 0 0 0 .9rem; border-left: 1px solid #e5e7eb; }
#wrap .aec-legal-nav li { margin: 0; }
#wrap .aec-legal-nav a { display: block; padding: .32rem 0; font-size: .86rem; line-height: 1.35; color: #6b7280; text-decoration: none; transition: color .2s; }
#wrap .aec-legal-nav a:hover { color: var(--aec-navy, #021e45); }
#wrap .aec-legal-body { min-width: 0; }
#wrap .aec-legal-body h2 { font-size: 1.3rem; line-height: 1.3; font-weight: 700; margin: 2.5rem 0 .9rem; padding-top: 2rem; border-top: 1px solid #eef1f5;
  scroll-margin-top: 6.5rem; }
#wrap .aec-legal-body ul { padding-left: 1.2rem; }
#wrap .aec-legal-body li { margin-bottom: .55rem; }
#wrap .aec-legal-body li::marker { color: #5b9bf0; }
#wrap .aec-legal-entity { font-size: .88rem; color: #4b5563; background: #f6f8fb; border-left: 3px solid #5b9bf0; border-radius: 0 10px 10px 0; padding: .75rem 1rem; }
@media (max-width: 991.98px) {
  #wrap .aec-legal { grid-template-columns: minmax(0, 1fr); }
  #wrap .aec-legal-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-bottom: 1.5rem; }
  #wrap .aec-legal-tabs::-webkit-scrollbar { display: none; }
  #wrap .aec-legal-tabs a { flex: none; }
  #wrap .aec-legal-nav { position: static; max-height: none; margin-bottom: 1.5rem; padding-bottom: 1.25rem; border-bottom: 1px solid #eef1f5; }
  #wrap .aec-legal-nav ol { columns: 2; column-gap: 1.25rem; border-left: 0; padding-left: 0; }
  #wrap .aec-legal-nav li { break-inside: avoid; }
  #wrap .aec-legal-nav a { padding: .22rem 0; font-size: .82rem; }
  #wrap .aec-legal-body h2 { font-size: 1.15rem; margin-top: 2rem; padding-top: 1.5rem; }
}

/* ---------- arriving from hmktools.com: HMK Tools -> AEC Pilot (fx.js "arriving from hmktools.com") ---------- */
.aec-hmk-note {
  position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 1050;
  width: min(560px, calc(100vw - 32px)); box-sizing: border-box;
  padding: 20px 56px 22px 24px; border-radius: 16px;
  background: var(--aec-navy, #021e45); color: #fff;
  box-shadow: 0 18px 50px rgba(2, 30, 69, .35), 0 0 0 1px rgba(255, 255, 255, .08) inset;
  font-size: 15px; line-height: 1.5;
  animation: aec-hmk-in .45s cubic-bezier(.2, .8, .2, 1) both;
}
@keyframes aec-hmk-in { from { opacity: 0; transform: translate(-50%, 16px); } to { opacity: 1; transform: translate(-50%, 0); } }
.aec-hmk-brands { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.aec-hmk-old { display: inline-flex; align-items: center; gap: 8px; opacity: .55; }
.aec-hmk-old img { width: 20px; height: 20px; display: block; }
.aec-hmk-old i { width: 1px; height: 16px; background: rgba(255, 255, 255, .45); }
.aec-hmk-old b { font: 600 12px/1 var(--aec-mono, "IBM Plex Mono", ui-monospace, monospace); letter-spacing: .22em; text-decoration: line-through; text-decoration-color: rgba(255, 255, 255, .7); }
.aec-hmk-arrow { color: #7fb2ff; font-size: 18px; line-height: 1; }
.aec-hmk-new { height: 22px; width: auto; display: block; }
.aec-hmk-note .aec-hmk-title { margin: 0; font-size: 20px; font-weight: 700; line-height: 1.3; letter-spacing: -.01em; }
.aec-hmk-note .aec-hmk-text { margin: 6px 0 16px; color: rgba(255, 255, 255, .82); }
.aec-hmk-btn {
  display: inline-flex; align-items: center; padding: 10px 18px; border-radius: 999px;
  background: #fff; color: var(--aec-navy, #021e45) !important; font-weight: 600; font-size: 14.5px; text-decoration: none !important;
  transition: background .15s, transform .15s;
}
.aec-hmk-btn:hover, .aec-hmk-btn:focus-visible { background: #e6ebf3; transform: translateY(-1px); }
.aec-hmk-x {
  position: absolute; top: 12px; right: 12px; width: 34px; height: 34px; border: 0; border-radius: 10px;
  background: rgba(255, 255, 255, .1); color: #fff; font-size: 20px; line-height: 1; cursor: pointer;
}
.aec-hmk-x:hover, .aec-hmk-x:focus-visible { background: rgba(255, 255, 255, .22); }
@media (prefers-reduced-motion: reduce) { .aec-hmk-note { animation: none; } }
@media (max-width: 575px) {
  /* full width, above the live-chat bubble (bottom-right) */
  .aec-hmk-note { left: 12px; right: 12px; bottom: 88px; width: auto; transform: none; padding: 16px 50px 18px 18px; font-size: 14px; }
  @keyframes aec-hmk-in-m { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
  .aec-hmk-note { animation-name: aec-hmk-in-m; }
  .aec-hmk-note .aec-hmk-title { font-size: 18px; }
  .aec-hmk-btn { font-size: 14px; }
}
